diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-03-28 07:47:33 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-03-28 07:47:33 +0400 |
commit | c9f677d24d9600d9ba07f1b258c49455bc348554 (patch) | |
tree | b9a0cc4941e42321dcab9acff4102bcbbd1ef895 /source/blender/editors/sculpt_paint | |
parent | 274e243a67285ce71ee3b29ce0ea1aeb7bc7429c (diff) |
style cleanup: mainly whitespace around operators and indentation - paint/sculpt tools
Diffstat (limited to 'source/blender/editors/sculpt_paint')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_cursor.c | 152 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_hide.c | 118 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image.c | 1912 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_ops.c | 170 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_stroke.c | 44 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_undo.c | 62 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_utils.c | 130 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_vertex.c | 112 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 951 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_undo.c | 212 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_uv.c | 105 |
11 files changed, 1986 insertions, 1982 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c index be50b842914..5d4710accad 100644 --- a/source/blender/editors/sculpt_paint/paint_cursor.c +++ b/source/blender/editors/sculpt_paint/paint_cursor.c @@ -76,26 +76,26 @@ typedef struct Snapshot { int curve_changed_timestamp; } Snapshot; -static int same_snap(Snapshot* snap, Brush* brush, ViewContext* vc) +static int same_snap(Snapshot *snap, Brush *brush, ViewContext *vc) { - MTex* mtex = &brush->mtex; + MTex *mtex = &brush->mtex; return (((mtex->tex) && - equals_v3v3(mtex->ofs, snap->ofs) && - equals_v3v3(mtex->size, snap->size) && - mtex->rot == snap->rot) && - - /* make brush smaller shouldn't cause a resample */ - ((mtex->brush_map_mode == MTEX_MAP_MODE_FIXED && - (brush_size(vc->scene, brush) <= snap->brush_size)) || - (brush_size(vc->scene, brush) == snap->brush_size)) && - - (mtex->brush_map_mode == snap->brush_map_mode) && - (vc->ar->winx == snap->winx) && - (vc->ar->winy == snap->winy)); + equals_v3v3(mtex->ofs, snap->ofs) && + equals_v3v3(mtex->size, snap->size) && + mtex->rot == snap->rot) && + + /* make brush smaller shouldn't cause a resample */ + ((mtex->brush_map_mode == MTEX_MAP_MODE_FIXED && + (brush_size(vc->scene, brush) <= snap->brush_size)) || + (brush_size(vc->scene, brush) == snap->brush_size)) && + + (mtex->brush_map_mode == snap->brush_map_mode) && + (vc->ar->winx == snap->winx) && + (vc->ar->winy == snap->winy)); } -static void make_snap(Snapshot* snap, Brush* brush, ViewContext* vc) +static void make_snap(Snapshot *snap, Brush *brush, ViewContext *vc) { if (brush->mtex.tex) { snap->brush_map_mode = brush->mtex.brush_map_mode; @@ -105,8 +105,8 @@ static void make_snap(Snapshot* snap, Brush* brush, ViewContext* vc) } else { snap->brush_map_mode = -1; - snap->ofs[0]= snap->ofs[1]= snap->ofs[2]= -1; - snap->size[0]= snap->size[1]= snap->size[2]= -1; + snap->ofs[0] = snap->ofs[1] = snap->ofs[2] = -1; + snap->size[0] = snap->size[1] = snap->size[2] = -1; snap->rot = -1; } @@ -115,7 +115,7 @@ static void make_snap(Snapshot* snap, Brush* brush, ViewContext* vc) snap->winy = vc->ar->winy; } -static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) +static int load_tex(Sculpt *sd, Brush *br, ViewContext *vc) { static GLuint overlay_texture = 0; static int init = 0; @@ -124,7 +124,7 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) static Snapshot snap; static int old_size = -1; - GLubyte* buffer = NULL; + GLubyte *buffer = NULL; int size; int j; @@ -137,13 +137,13 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) if (br->mtex.brush_map_mode == MTEX_MAP_MODE_TILED && !br->mtex.tex) return 0; refresh = - !overlay_texture || - (br->mtex.tex && - (!br->mtex.tex->preview || - br->mtex.tex->preview->changed_timestamp[0] != tex_changed_timestamp)) || - !br->curve || - br->curve->changed_timestamp != curve_changed_timestamp || - !same_snap(&snap, br, vc); + !overlay_texture || + (br->mtex.tex && + (!br->mtex.tex->preview || + br->mtex.tex->preview->changed_timestamp[0] != tex_changed_timestamp)) || + !br->curve || + br->curve->changed_timestamp != curve_changed_timestamp || + !same_snap(&snap, br, vc); if (refresh) { if (br->mtex.tex && br->mtex.tex->preview) @@ -161,7 +161,7 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) for (s >>= 1; s > 0; s >>= 1) r++; - size = (1<<r); + size = (1 << r); if (size < 256) size = 256; @@ -183,26 +183,26 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) old_size = size; } - buffer = MEM_mallocN(sizeof(GLubyte)*size*size, "load_tex"); + buffer = MEM_mallocN(sizeof(GLubyte) * size * size, "load_tex"); #pragma omp parallel for schedule(static) if (sd->flags & SCULPT_USE_OPENMP) - for (j= 0; j < size; j++) { + for (j = 0; j < size; j++) { int i; float y; float len; - for (i= 0; i < size; i++) { + for (i = 0; i < size; i++) { // largely duplicated from tex_strength const float rotation = -br->mtex.rot; float radius = brush_size(vc->scene, br); - int index = j*size + i; + int index = j * size + i; float x; float avg; - x = (float)i/size; - y = (float)j/size; + x = (float)i / size; + y = (float)j / size; x -= 0.5f; y -= 0.5f; @@ -216,7 +216,7 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) y *= 2; } - len = sqrtf(x*x + y*y); + len = sqrtf(x * x + y * y); if ((br->mtex.brush_map_mode == MTEX_MAP_MODE_TILED) || len <= 1) { /* it is probably worth optimizing for those cases where @@ -240,9 +240,9 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) avg += br->texture_sample_bias; if (br->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) - avg *= brush_curve_strength(br, len, 1); /* Falloff curve */ + avg *= brush_curve_strength(br, len, 1); /* Falloff curve */ - buffer[index] = 255 - (GLubyte)(255*avg); + buffer[index] = 255 - (GLubyte)(255 * avg); } else { buffer[index] = 0; @@ -254,7 +254,7 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) glGenTextures(1, &overlay_texture); } else { - size= old_size; + size = old_size; } glBindTexture(GL_TEXTURE_2D, overlay_texture); @@ -287,8 +287,8 @@ static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc) } static int project_brush_radius(ViewContext *vc, - float radius, - const float location[3]) + float radius, + const float location[3]) { float view[3], nonortho[3], ortho[3], offset[3], p1[2], p2[2]; @@ -328,9 +328,9 @@ static int project_brush_radius(ViewContext *vc, return len_v2v2(p1, p2); } -static int sculpt_get_brush_geometry(bContext* C, ViewContext *vc, - int x, int y, int* pixel_radius, - float location[3]) +static int sculpt_get_brush_geometry(bContext *C, ViewContext *vc, + int x, int y, int *pixel_radius, + float location[3]) { Scene *scene = CTX_data_scene(C); Paint *paint = paint_get_active(scene); @@ -342,11 +342,11 @@ static int sculpt_get_brush_geometry(bContext* C, ViewContext *vc, window[1] = y + vc->ar->winrct.ymin; if (vc->obact->sculpt && vc->obact->sculpt->pbvh && - sculpt_stroke_get_location(C, location, window)) { + sculpt_stroke_get_location(C, location, window)) { *pixel_radius = - project_brush_radius(vc, - brush_unprojected_radius(scene, brush), - location); + project_brush_radius(vc, + brush_unprojected_radius(scene, brush), + location); if (*pixel_radius == 0) *pixel_radius = brush_size(scene, brush); @@ -356,8 +356,8 @@ static int sculpt_get_brush_geometry(bContext* C, ViewContext *vc, hit = 1; } else { - Sculpt* sd = CTX_data_tool_settings(C)->sculpt; - Brush* brush = paint_brush(&sd->paint); + Sculpt *sd = CTX_data_tool_settings(C)->sculpt; + Brush *brush = paint_brush(&sd->paint); *pixel_radius = brush_size(scene, brush); hit = 0; @@ -370,26 +370,26 @@ static int sculpt_get_brush_geometry(bContext* C, ViewContext *vc, * have on brush strength */ /* TODO: sculpt only for now */ static void paint_draw_alpha_overlay(Sculpt *sd, Brush *brush, - ViewContext *vc, int x, int y) + ViewContext *vc, int x, int y) { rctf quad; /* check for overlay mode */ if (!(brush->flag & BRUSH_TEXTURE_OVERLAY) || - !(ELEM(brush->mtex.brush_map_mode, MTEX_MAP_MODE_FIXED, MTEX_MAP_MODE_TILED))) + !(ELEM(brush->mtex.brush_map_mode, MTEX_MAP_MODE_FIXED, MTEX_MAP_MODE_TILED))) return; /* save lots of GL state * TODO: check on whether all of these are needed? */ - glPushAttrib(GL_COLOR_BUFFER_BIT| - GL_CURRENT_BIT| - GL_DEPTH_BUFFER_BIT| - GL_ENABLE_BIT| - GL_LINE_BIT| - GL_POLYGON_BIT| - GL_STENCIL_BUFFER_BIT| - GL_TRANSFORM_BIT| - GL_VIEWPORT_BIT| + glPushAttrib(GL_COLOR_BUFFER_BIT | + GL_CURRENT_BIT | + GL_DEPTH_BUFFER_BIT | + GL_ENABLE_BIT | + GL_LINE_BIT | + GL_POLYGON_BIT | + GL_STENCIL_BUFFER_BIT | + GL_TRANSFORM_BIT | + GL_VIEWPORT_BIT | GL_TEXTURE_BIT); if (load_tex(sd, brush, vc)) { @@ -408,26 +408,26 @@ static void paint_draw_alpha_overlay(Sculpt *sd, Brush *brush, glTranslatef(0.5, 0.5, 0); glRotatef((double)RAD2DEGF((brush->flag & BRUSH_RAKE) ? sd->last_angle : sd->special_rotation), - 0.0, 0.0, 1.0); + 0.0, 0.0, 1.0); glTranslatef(-0.5f, -0.5f, 0); /* scale based on tablet pressure */ if (sd->draw_pressure && brush_use_size_pressure(vc->scene, brush)) { glTranslatef(0.5f, 0.5f, 0); - glScalef(1.0f/sd->pressure_value, 1.0f/sd->pressure_value, 1); + glScalef(1.0f / sd->pressure_value, 1.0f / sd->pressure_value, 1); glTranslatef(-0.5f, -0.5f, 0); } if (sd->draw_anchored) { const float *aim = sd->anchored_initial_mouse; const rcti *win = &vc->ar->winrct; - quad.xmin = aim[0]-sd->anchored_size - win->xmin; - quad.ymin = aim[1]-sd->anchored_size - win->ymin; - quad.xmax = aim[0]+sd->anchored_size - win->xmin; - quad.ymax = aim[1]+sd->anchored_size - win->ymin; + quad.xmin = aim[0] - sd->anchored_size - win->xmin; + quad.ymin = aim[1] - sd->anchored_size - win->ymin; + quad.xmax = aim[0] + sd->anchored_size - win->xmin; + quad.ymax = aim[1] + sd->anchored_size - win->ymin; } else { - const int radius= brush_size(vc->scene, brush); + const int radius = brush_size(vc->scene, brush); quad.xmin = x - radius; quad.ymin = y - radius; quad.xmax = x + radius; @@ -468,7 +468,7 @@ static void paint_draw_alpha_overlay(Sculpt *sd, Brush *brush, /* Special actions taken when paint cursor goes over mesh */ /* TODO: sculpt only for now */ static void paint_cursor_on_hit(Sculpt *sd, Brush *brush, ViewContext *vc, - const float location[3]) + const float location[3]) { float unprojected_radius, projected_radius; @@ -486,7 +486,7 @@ static void paint_cursor_on_hit(Sculpt *sd, Brush *brush, ViewContext *vc, /* convert brush radius from 2D to 3D */ unprojected_radius = paint_calc_object_space_radius(vc, location, - projected_radius); + projected_radius); /* scale 3D brush radius by pressure */ if (sd->draw_pressure && brush_use_size_pressure(vc->scene, brush)) @@ -541,11 +541,11 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) const float dx = sd->last_x - x; const float dy = sd->last_y - y; - if (dx*dx + dy*dy >= r*r) { + if (dx * dx + dy * dy >= r * r) { sd->last_angle = atan2(dx, dy); - sd->last_x = u*sd->last_x + v*x; - sd->last_y = u*sd->last_y + v*y; + sd->last_x = u * sd->last_x + v * x; + sd->last_y = u * sd->last_y + v * y; } } @@ -562,10 +562,10 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) /* TODO: no way currently to know state of pen flip or * invert key modifier without starting a stroke */ if ((!(brush->flag & BRUSH_INVERTED) ^ - !(brush->flag & BRUSH_DIR_IN)) && - ELEM5(brush->sculpt_tool, SCULPT_TOOL_DRAW, - SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, - SCULPT_TOOL_PINCH, SCULPT_TOOL_CREASE)) + !(brush->flag & BRUSH_DIR_IN)) && + ELEM5(brush->sculpt_tool, SCULPT_TOOL_DRAW, + SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, + SCULPT_TOOL_PINCH, SCULPT_TOOL_CREASE)) outline_col = brush->sub_col; /* only do if brush is over the mesh */ @@ -588,7 +588,7 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) /* draw brush outline */ glTranslatef(translation[0], translation[1], 0); - glutil_draw_lined_arc(0.0, M_PI*2.0, final_radius, 40); + glutil_draw_lined_arc(0.0, M_PI * 2.0, final_radius, 40); glTranslatef(-translation[0], -translation[1], 0); /* restore GL state */ diff --git a/source/blender/editors/sculpt_paint/paint_hide.c b/source/blender/editors/sculpt_paint/paint_hide.c index fcf7d2eba68..a3acce33683 100644 --- a/source/blender/editors/sculpt_paint/paint_hide.c +++ b/source/blender/editors/sculpt_paint/paint_hide.c @@ -84,24 +84,24 @@ static int planes_contain_v3(float (*planes)[4], int totplane, const float p[3]) /* return true if the element should be hidden/shown */ static int is_effected(PartialVisArea area, - float planes[4][4], - const float co[3]) + float planes[4][4], + const float co[3]) { if (area == PARTIALVIS_ALL) return 1; else { int inside = planes_contain_v3(planes, 4, co); return ((inside && area == PARTIALVIS_INSIDE) || - (!inside && area == PARTIALVIS_OUTSIDE)); + (!inside && area == PARTIALVIS_OUTSIDE)); } } static void partialvis_update_mesh(Object *ob, - PBVH *pbvh, - PBVHNode *node, - PartialVisAction action, - PartialVisArea area, - float planes[4][4]) + PBVH *pbvh, + PBVHNode *node, + PartialVisAction action, + PartialVisArea area, + float planes[4][4]) { MVert *mvert; int *vert_indices; @@ -137,11 +137,11 @@ static void partialvis_update_mesh(Object *ob, /* Hide or show elements in multires grids with a special GridFlags customdata layer. */ static void partialvis_update_grids(Object *ob, - PBVH *pbvh, - PBVHNode *node, - PartialVisAction action, - PartialVisArea area, - float planes[4][4]) + PBVH *pbvh, + PBVHNode *node, + PartialVisAction action, + PartialVisArea area, + float planes[4][4]) { DMGridData **grids; BLI_bitmap *grid_hidden; @@ -150,8 +150,8 @@ static void partialvis_update_grids(Object *ob, /* get PBVH data */ BLI_pbvh_node_get_grids(pbvh, node, - &grid_indices, &totgrid, NULL, &gridsize, - &grids, NULL); + &grid_indices, &totgrid, NULL, &gridsize, + &grids, NULL); grid_hidden = BLI_pbvh_grid_hidden(pbvh); sculpt_undo_push_node(ob, node, SCULPT_UNDO_HIDDEN); @@ -163,15 +163,15 @@ static void partialvis_update_grids(Object *ob, BLI_bitmap gh = grid_hidden[g]; if (!gh) { - switch(action) { - case PARTIALVIS_HIDE: - /* create grid flags data */ - gh = grid_hidden[g] = BLI_BITMAP_NEW(gridsize * gridsize, - "partialvis_update_grids"); - break; - case PARTIALVIS_SHOW: - /* entire grid is visible, nothing to show */ - continue; + switch (action) { + case PARTIALVIS_HIDE: + /* create grid flags data */ + gh = grid_hidden[g] = BLI_BITMAP_NEW(gridsize * gridsize, + "partialvis_update_grids"); + break; + case PARTIALVIS_SHOW: + /* entire grid is visible, nothing to show */ + continue; } } else if (action == PARTIALVIS_SHOW && area == PARTIALVIS_ALL) { @@ -192,7 +192,7 @@ static void partialvis_update_grids(Object *ob, if (is_effected(area, planes, co)) { /* set or clear the hide flag */ BLI_BITMAP_MODIFY(gh, y * gridsize + x, - action == PARTIALVIS_HIDE); + action == PARTIALVIS_HIDE); any_changed = 1; } @@ -230,12 +230,12 @@ static void rect_from_props(rcti *rect, PointerRNA *ptr) } static void clip_planes_from_rect(bContext *C, - float clip_planes[4][4], - const rcti *rect) + float clip_planes[4][4], + const rcti *rect) { ViewContext vc; BoundBox bb; - bglMats mats= {{0}}; + bglMats mats = {{0}}; view3d_operator_needs_opengl(C); view3d_set_viewcontext(C, &vc); @@ -249,23 +249,23 @@ static void clip_planes_from_rect(bContext *C, that lie at least partially outside the volume. If showing all, get all nodes. */ static void get_pbvh_nodes(PBVH *pbvh, - PBVHNode ***nodes, - int *totnode, - float clip_planes[4][4], - PartialVisArea mode) + PBVHNode ***nodes, + int *totnode, + float clip_planes[4][4], + PartialVisArea mode) { BLI_pbvh_SearchCallback cb; /* select search callback */ - switch(mode) { - case PARTIALVIS_INSIDE: - cb = BLI_pbvh_node_planes_contain_AABB; - break; - case PARTIALVIS_OUTSIDE: - cb = BLI_pbvh_node_planes_exclude_AABB; - break; - case PARTIALVIS_ALL: - cb = NULL; + switch (mode) { + case PARTIALVIS_INSIDE: + cb = BLI_pbvh_node_planes_contain_AABB; + break; + case PARTIALVIS_OUTSIDE: + cb = BLI_pbvh_node_planes_exclude_AABB; + break; + case PARTIALVIS_ALL: + cb = NULL; } BLI_pbvh_search_gather(pbvh, cb, clip_planes, nodes, totnode); @@ -301,23 +301,23 @@ static int hide_show_exec(bContext *C, wmOperator *op) pbvh_type = BLI_pbvh_type(pbvh); /* start undo */ - switch(action) { - case PARTIALVIS_HIDE: - sculpt_undo_push_begin("Hide area"); - break; - case PARTIALVIS_SHOW: - sculpt_undo_push_begin("Show area"); - break; + switch (action) { + case PARTIALVIS_HIDE: + sculpt_undo_push_begin("Hide area"); + break; + case PARTIALVIS_SHOW: + sculpt_undo_push_begin("Show area"); + break; } for (i = 0; i < totnode; i++) { - switch(pbvh_type) { - case PBVH_FACES: - partialvis_update_mesh(ob, pbvh, nodes[i], action, area, clip_planes); - break; - case PBVH_GRIDS: - partialvis_update_grids(ob, pbvh, nodes[i], action, area, clip_planes); - break; + switch (pbvh_type) { + case PBVH_FACES: + partialvis_update_mesh(ob, pbvh, nodes[i], action, area, clip_planes); + break; + case PBVH_GRIDS: + partialvis_update_grids(ob, pbvh, nodes[i], action, area, clip_planes); + break; } } @@ -331,8 +331,8 @@ static int hide_show_exec(bContext *C, wmOperator *op) sculpt but it looks wrong when entering editmode otherwise) */ if (pbvh_type == PBVH_FACES) { mesh_flush_hidden_from_verts(me->mvert, me->mloop, - me->medge, me->totedge, - me->mpoly, me->totpoly); + me->medge, me->totedge, + me->mpoly, me->totpoly); } ED_region_tag_redraw(ar); @@ -381,9 +381,9 @@ void PAINT_OT_hide_show(struct wmOperatorType *ot) /* rna */ RNA_def_enum(ot->srna, "action", action_items, PARTIALVIS_HIDE, - "Action", "Whether to hide or show vertices"); + "Action", "Whether to hide or show vertices"); RNA_def_enum(ot->srna, "area", area_items, PARTIALVIS_INSIDE, - "Area", "Which vertices to hide or show"); + "Area", "Which vertices to hide or show"); RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX); RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX); diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index f761be741e9..f553084cfd9 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -111,7 +111,7 @@ /* Defines and Structs */ -#define IMAPAINT_CHAR_TO_FLOAT(c) ((c)/255.0f) +#define IMAPAINT_CHAR_TO_FLOAT(c) ((c) / 255.0f) #define IMAPAINT_FLOAT_RGB_TO_CHAR(c, f) { \ (c)[0]= FTOCHAR((f)[0]); \ @@ -138,9 +138,9 @@ #define IMAPAINT_FLOAT_RGB_COPY(a, b) copy_v3_v3(a, b) -#define IMAPAINT_TILE_BITS 6 -#define IMAPAINT_TILE_SIZE (1 << IMAPAINT_TILE_BITS) -#define IMAPAINT_TILE_NUMBER(size) (((size)+IMAPAINT_TILE_SIZE-1) >> IMAPAINT_TILE_BITS) +#define IMAPAINT_TILE_BITS 6 +#define IMAPAINT_TILE_SIZE (1 << IMAPAINT_TILE_BITS) +#define IMAPAINT_TILE_NUMBER(size) (((size) + IMAPAINT_TILE_SIZE - 1) >> IMAPAINT_TILE_BITS) static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, short texpaint); @@ -167,11 +167,11 @@ typedef struct ImagePaintState { int do_facesel; DerivedMesh *dm; - int dm_totface; - int dm_release; + int dm_totface; + int dm_release; - MFace *dm_mface; - MTFace *dm_mtface; + MFace *dm_mface; + MTFace *dm_mtface; } ImagePaintState; typedef struct ImagePaintPartialRedraw { @@ -209,31 +209,31 @@ typedef struct ImagePaintRegion { /* projectFaceSeamFlags options */ //#define PROJ_FACE_IGNORE (1<<0) /* When the face is hidden, backfacing or occluded */ //#define PROJ_FACE_INIT (1<<1) /* When we have initialized the faces data */ -#define PROJ_FACE_SEAM1 (1<<0) /* If this face has a seam on any of its edges */ -#define PROJ_FACE_SEAM2 (1<<1) -#define PROJ_FACE_SEAM3 (1<<2) -#define PROJ_FACE_SEAM4 (1<<3) +#define PROJ_FACE_SEAM1 (1 << 0) /* If this face has a seam on any of its edges */ +#define PROJ_FACE_SEAM2 (1 << 1) +#define PROJ_FACE_SEAM3 (1 << 2) +#define PROJ_FACE_SEAM4 (1 << 3) -#define PROJ_FACE_NOSEAM1 (1<<4) -#define PROJ_FACE_NOSEAM2 (1<<5) -#define PROJ_FACE_NOSEAM3 (1<<6) -#define PROJ_FACE_NOSEAM4 (1<<7) +#define PROJ_FACE_NOSEAM1 (1 << 4) +#define PROJ_FACE_NOSEAM2 (1 << 5) +#define PROJ_FACE_NOSEAM3 (1 << 6) +#define PROJ_FACE_NOSEAM4 (1 << 7) -#define PROJ_SRC_VIEW 1 -#define PROJ_SRC_IMAGE_CAM 2 -#define PROJ_SRC_IMAGE_VIEW 3 +#define PROJ_SRC_VIEW 1 +#define PROJ_SRC_IMAGE_CAM 2 +#define PROJ_SRC_IMAGE_VIEW 3 #define PROJ_VIEW_DATA_ID "view_data" -#define PROJ_VIEW_DATA_SIZE (4*4 + 4*4 + 3) /* viewmat + winmat + clipsta + clipend + is_ortho */ +#define PROJ_VIEW_DATA_SIZE (4 * 4 + 4 * 4 + 3) /* viewmat + winmat + clipsta + clipend + is_ortho */ /* a slightly scaled down face is used to get fake 3D location for edge pixels in the seams * as this number approaches 1.0f the likelihood increases of float precision errors where * it is occluded by an adjacent face */ -#define PROJ_FACE_SCALE_SEAM 0.99f +#define PROJ_FACE_SCALE_SEAM 0.99f -#define PROJ_BUCKET_NULL 0 -#define PROJ_BUCKET_INIT (1<<0) +#define PROJ_BUCKET_NULL 0 +#define PROJ_BUCKET_INIT (1 << 0) // #define PROJ_BUCKET_CLONE_INIT (1<<1) /* used for testing doubles, if a point is on a line etc */ @@ -269,67 +269,67 @@ typedef struct ProjPaintState { /* end similarities with ImagePaintState */ DerivedMesh *dm; - int dm_totface; - int dm_totvert; - int dm_release; - - MVert *dm_mvert; - MFace *dm_mface; - MTFace *dm_mtface; - MTFace *dm_mtface_clone; /* other UV map, use for cloning between layers */ - MTFace *dm_mtface_stencil; + int dm_totface; + int dm_totvert; + int dm_release; + + MVert *dm_mvert; + MFace *dm_mface; + MTFace *dm_mtface; + MTFace *dm_mtface_clone; /* other UV map, use for cloning between layers */ + MTFace *dm_mtface_stencil; /* projection painting only */ - MemArena *arena_mt[BLENDER_MAX_THREADS];/* for multithreading, the first item is sometimes used for non threaded cases too */ - LinkNode **bucketRect; /* screen sized 2D array, each pixel has a linked list of ProjPixel's */ - LinkNode **bucketFaces; /* bucketRect aligned array linkList of faces overlapping each bucket */ - unsigned char *bucketFlags; /* store if the bucks have been initialized */ + MemArena *arena_mt[BLENDER_MAX_THREADS]; /* for multithreading, the first item is sometimes used for non threaded cases too */ + LinkNode **bucketRect; /* screen sized 2D array, each pixel has a linked list of ProjPixel's */ + LinkNode **bucketFaces; /* bucketRect aligned array linkList of faces overlapping each bucket */ + unsigned char *bucketFlags; /* store if the bucks have been initialized */ #ifndef PROJ_DEBUG_NOSEAMBLEED - char *faceSeamFlags; /* store info about faces, if they are initialized etc*/ - float (*faceSeamUVs)[4][2]; /* expanded UVs for faces to use as seams */ - LinkNode **vertFaces; /* Only needed for when seam_bleed_px is enabled, use to find UV seams */ + char *faceSeamFlags; /* store info about faces, if they are initialized etc*/ + float (*faceSeamUVs)[4][2]; /* expanded UVs for faces to use as seams */ + LinkNode **vertFaces; /* Only needed for when seam_bleed_px is enabled, use to find UV seams */ #endif - char *vertFlags; /* store options per vert, now only store if the vert is pointing away from the view */ - int buckets_x; /* The size of the bucket grid, the grid span's screenMin/screenMax so you can paint outsize the screen or with 2 brushes at once */ + char *vertFlags; /* store options per vert, now only store if the vert is pointing away from the view */ + int buckets_x; /* The size of the bucket grid, the grid span's screenMin/screenMax so you can paint outsize the screen or with 2 brushes at once */ int buckets_y; ProjPaintImage *projImages; - int image_tot; /* size of projectImages array */ + int image_tot; /* size of projectImages array */ - float (*screenCoords)[4]; /* verts projected into floating point screen space */ + float (*screenCoords)[4]; /* verts projected into floating point screen space */ - float screenMin[2]; /* 2D bounds for mesh verts on the screen's plane (screenspace) */ + float screenMin[2]; /* 2D bounds for mesh verts on the screen's plane (screenspace) */ float screenMax[2]; - float screen_width; /* Calculated from screenMin & screenMax */ + float screen_width; /* Calculated from screenMin & screenMax */ float screen_height; - int winx, winy; /* from the carea or from the projection render */ + int winx, winy; /* from the carea or from the projection render */ /* options for projection painting */ int do_layer_clone; int do_layer_stencil; int do_layer_stencil_inv; - short do_occlude; /* Use raytraced occlusion? - ortherwise will paint right through to the back*/ - short do_backfacecull; /* ignore faces with normals pointing away, skips a lot of raycasts if your normals are correctly flipped */ - short do_mask_normal; /* mask out pixels based on their normals */ + short do_occlude; /* Use raytraced occlusion? - ortherwise will paint right through to the back*/ + short do_backfacecull; /* ignore faces with normals pointing away, skips a lot of raycasts if your normals are correctly flipped */ + short do_mask_normal; /* mask out pixels based on their normals */ short do_new_shading_nodes; /* cache scene_use_new_shading_nodes value */ - float normal_angle; /* what angle to mask at*/ + float normal_angle; /* what angle to mask at*/ float normal_angle_inner; - float normal_angle_range; /* difference between normal_angle and normal_angle_inner, for easy access */ + float normal_angle_range; /* difference between normal_angle and normal_angle_inner, for easy access */ short is_ortho; - short is_airbrush; /* only to avoid using (ps.brush->flag & BRUSH_AIRBRUSH) */ - short is_texbrush; /* only to avoid running */ + short is_airbrush; /* only to avoid using (ps.brush->flag & BRUSH_AIRBRUSH) */ + short is_texbrush; /* only to avoid running */ #ifndef PROJ_DEBUG_NOSEAMBLEED float seam_bleed_px; #endif /* clone vars */ float cloneOffset[2]; - float projectMat[4][4]; /* Projection matrix, use for getting screen coords */ - float viewDir[3]; /* View vector, use for do_backfacecull and for ray casting with an ortho viewport */ - float viewPos[3]; /* View location in object relative 3D space, so can compare to verts */ + float projectMat[4][4]; /* Projection matrix, use for getting screen coords */ + float viewDir[3]; /* View vector, use for do_backfacecull and for ray casting with an ortho viewport */ + float viewPos[3]; /* View location in object relative 3D space, so can compare to verts */ float clipsta, clipend; /* reproject vars */ @@ -344,15 +344,13 @@ typedef struct ProjPaintState { int context_bucket_x, context_bucket_y; /* must lock threads while accessing these */ } ProjPaintState; -typedef union pixelPointer -{ - float *f_pt; /* float buffer */ +typedef union pixelPointer { + float *f_pt; /* float buffer */ unsigned int *uint_pt; /* 2 ways to access a char buffer */ unsigned char *ch_pt; } PixelPointer; -typedef union pixelStore -{ +typedef union pixelStore { unsigned char ch[4]; unsigned int uint; float f[4]; @@ -390,7 +388,7 @@ typedef struct ProjPixelClone { typedef struct UndoImageTile { struct UndoImageTile *next, *prev; - char idname[MAX_ID_NAME]; /* name instead of pointer*/ + char idname[MAX_ID_NAME]; /* name instead of pointer*/ char ibufname[IB_FILENAME_SIZE]; void *rect; @@ -407,51 +405,51 @@ static ImagePaintPartialRedraw imapaintpartial = {0, 0, 0, 0, 0}; static void undo_copy_tile(UndoImageTile *tile, ImBuf *tmpibuf, ImBuf *ibuf, int restore) { /* copy or swap contents of tile->rect and region in ibuf->rect */ - IMB_rectcpy(tmpibuf, ibuf, 0, 0, tile->x*IMAPAINT_TILE_SIZE, - tile->y*IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE); + IMB_rectcpy(tmpibuf, ibuf, 0, 0, tile->x * IMAPAINT_TILE_SIZE, + tile->y * IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE); if (ibuf->rect_float) { - SWAP(void*, tmpibuf->rect_float, tile->rect); + SWAP(void *, tmpibuf->rect_float, tile->rect); } else { - SWAP(void*, tmpibuf->rect, tile->rect); + SWAP(void *, tmpibuf->rect, tile->rect); } if (restore) - IMB_rectcpy(ibuf, tmpibuf, tile->x*IMAPAINT_TILE_SIZE, - tile->y*IMAPAINT_TILE_SIZE, 0, 0, IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE); + IMB_rectcpy(ibuf, tmpibuf, tile->x * IMAPAINT_TILE_SIZE, + tile->y * IMAPAINT_TILE_SIZE, 0, 0, IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE); } static void *image_undo_push_tile(Image *ima, ImBuf *ibuf, ImBuf **tmpibuf, int x_tile, int y_tile) { - ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_IMAGE); + ListBase *lb = undo_paint_push_get_list(UNDO_PAINT_IMAGE); UndoImageTile *tile; int allocsize; short use_float = ibuf->rect_float ? 1 : 0; - for (tile=lb->first; tile; tile=tile->next) + for (tile = lb->first; tile; tile = tile->next) if (tile->x == x_tile && tile->y == y_tile && ima->gen_type == tile->gen_type && ima->source == tile->source) if (tile->use_float == use_float) - if (strcmp(tile->idname, ima->id.name)==0 && strcmp(tile->ibufname, ibuf->name)==0) + if (strcmp(tile->idname, ima->id.name) == 0 && strcmp(tile->ibufname, ibuf->name) == 0) return tile->rect; - if (*tmpibuf==NULL) - *tmpibuf = IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, IB_rectfloat|IB_rect); + if (*tmpibuf == NULL) + *tmpibuf = IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, IB_rectfloat | IB_rect); - tile= MEM_callocN(sizeof(UndoImageTile), "UndoImageTile"); + tile = MEM_callocN(sizeof(UndoImageTile), "UndoImageTile"); BLI_strncpy(tile->idname, ima->id.name, sizeof(tile->idname)); - tile->x= x_tile; - tile->y= y_tile; + tile->x = x_tile; + tile->y = y_tile; - allocsize= IMAPAINT_TILE_SIZE*IMAPAINT_TILE_SIZE*4; - allocsize *= (ibuf->rect_float)? sizeof(float): sizeof(char); - tile->rect= MEM_mapallocN(allocsize, "UndeImageTile.rect"); + allocsize = IMAPAINT_TILE_SIZE * IMAPAINT_TILE_SIZE * 4; + allocsize *= (ibuf->rect_float) ? sizeof(float) : sizeof(char); + tile->rect = MEM_mapallocN(allocsize, "UndeImageTile.rect"); BLI_strncpy(tile->ibufname, ibuf->name, sizeof(tile->ibufname)); - tile->gen_type= ima->gen_type; - tile->source= ima->source; - tile->use_float= use_float; + tile->gen_type = ima->gen_type; + tile->source = ima->source; + tile->use_float = use_float; undo_copy_tile(tile, *tmpibuf, ibuf, 0); undo_paint_push_count_alloc(UNDO_PAINT_IMAGE, allocsize); @@ -463,34 +461,34 @@ static void *image_undo_push_tile(Image *ima, ImBuf *ibuf, ImBuf **tmpibuf, int static void image_undo_restore(bContext *C, ListBase *lb) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); Image *ima = NULL; ImBuf *ibuf, *tmpibuf; UndoImageTile *tile; - tmpibuf= IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, - IB_rectfloat|IB_rect); + tmpibuf = IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, + IB_rectfloat | IB_rect); - for (tile=lb->first; tile; tile=tile->next) { + for (tile = lb->first; tile; tile = tile->next) { short use_float; /* find image based on name, pointer becomes invalid with global undo */ - if (ima && strcmp(tile->idname, ima->id.name)==0) { + if (ima && strcmp(tile->idname, ima->id.name) == 0) { /* ima is valid */ } else { - ima= BLI_findstring(&bmain->image, tile->idname, offsetof(ID, name)); + ima = BLI_findstring(&bmain->image, tile->idname, offsetof(ID, name)); } - ibuf= BKE_image_get_ibuf(ima, NULL); + ibuf = BKE_image_get_ibuf(ima, NULL); - if (ima && ibuf && strcmp(tile->ibufname, ibuf->name)!=0) { + if (ima && ibuf && strcmp(tile->ibufname, ibuf->name) != 0) { /* current ImBuf filename was changed, probably current frame * was changed when paiting on image sequence, rather than storing * full image user (which isn't so obvious, btw) try to find ImBuf with * matched file name in list of already loaded images */ - ibuf= BLI_findstring(&ima->ibufs, tile->ibufname, offsetof(ImBuf, name)); + ibuf = BLI_findstring(&ima->ibufs, tile->ibufname, offsetof(ImBuf, name)); } if (!ima || !ibuf || !(ibuf->rect || ibuf->rect_float)) @@ -510,7 +508,7 @@ static void image_undo_restore(bContext *C, ListBase *lb) if (ibuf->rect_float) ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */ if (ibuf->mipmap[0]) - ibuf->userflags |= IB_MIPMAP_INVALID; /* force mipmap recreatiom */ + ibuf->userflags |= IB_MIPMAP_INVALID; /* force mipmap recreatiom */ } @@ -521,7 +519,7 @@ static void image_undo_free(ListBase *lb) { UndoImageTile *tile; - for (tile=lb->first; tile; tile=tile->next) + for (tile = lb->first; tile; tile = tile->next) MEM_freeN(tile->rect); } @@ -548,7 +546,7 @@ static Image *project_paint_face_image(const ProjPaintState *ps, MTFace *dm_mtfa Image *ima; if (ps->do_new_shading_nodes) { /* cached scene_use_new_shading_nodes result */ - MFace *mf = ps->dm_mface+face_index; + MFace *mf = ps->dm_mface + face_index; ED_object_get_active_image(ps->ob, mf->mat_nr, &ima, NULL, NULL); } else { @@ -571,15 +569,15 @@ static int project_bucket_offset(const ProjPaintState *ps, const float projCoSS[ * * Second multiplication does similar but for vertical offset */ - return ( (int)(((projCoSS[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x)) + - ( ( (int)(((projCoSS[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y)) * ps->buckets_x); + return ( (int)(((projCoSS[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x)) + + ( ( (int)(((projCoSS[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y)) * ps->buckets_x); } static int project_bucket_offset_safe(const ProjPaintState *ps, const float projCoSS[2]) { int bucket_index = project_bucket_offset(ps, projCoSS); - if (bucket_index < 0 || bucket_index >= ps->buckets_x*ps->buckets_y) { + if (bucket_index < 0 || bucket_index >= ps->buckets_x * ps->buckets_y) { return -1; } else { @@ -595,23 +593,23 @@ static void barycentric_weights_v2_persp(float v1[4], float v2[4], float v3[4], w[0] = area_tri_signed_v2(v2, v3, co) / v1[3]; w[1] = area_tri_signed_v2(v3, v1, co) / v2[3]; w[2] = area_tri_signed_v2(v1, v2, co) / v3[3]; - wtot = w[0]+w[1]+w[2]; + wtot = w[0] + w[1] + w[2]; if (wtot != 0.0f) { - wtot_inv = 1.0f/wtot; + wtot_inv = 1.0f / wtot; - w[0] = w[0]*wtot_inv; - w[1] = w[1]*wtot_inv; - w[2] = w[2]*wtot_inv; + w[0] = w[0] * wtot_inv; + w[1] = w[1] * wtot_inv; + w[2] = w[2] * wtot_inv; } else /* dummy values for zero area face */ - w[0] = w[1] = w[2] = 1.0f/3.0f; + w[0] = w[1] = w[2] = 1.0f / 3.0f; } static float VecZDepthOrtho(float pt[2], float v1[3], float v2[3], float v3[3], float w[3]) { barycentric_weights_v2(v1, v2, v3, pt, w); - return (v1[2]*w[0]) + (v2[2]*w[1]) + (v3[2]*w[2]); + return (v1[2] * w[0]) + (v2[2] * w[1]) + (v3[2] * w[2]); } static float VecZDepthPersp(float pt[2], float v1[4], float v2[4], float v3[4], float w[3]) @@ -626,24 +624,24 @@ static float VecZDepthPersp(float pt[2], float v1[4], float v2[4], float v3[4], * * don't call barycentric_weights_v2() becaue our callers expect 'w' * to be weighted from the perspective */ - w_tmp[0]= w[0] * v1[3]; - w_tmp[1]= w[1] * v2[3]; - w_tmp[2]= w[2] * v3[3]; + w_tmp[0] = w[0] * v1[3]; + w_tmp[1] = w[1] * v2[3]; + w_tmp[2] = w[2] * v3[3]; - wtot = w_tmp[0]+w_tmp[1]+w_tmp[2]; + wtot = w_tmp[0] + w_tmp[1] + w_tmp[2]; if (wtot != 0.0f) { - wtot_inv = 1.0f/wtot; + wtot_inv = 1.0f / wtot; - w_tmp[0] = w_tmp[0]*wtot_inv; - w_tmp[1] = w_tmp[1]*wtot_inv; - w_tmp[2] = w_tmp[2]*wtot_inv; + w_tmp[0] = w_tmp[0] * wtot_inv; + w_tmp[1] = w_tmp[1] * wtot_inv; + w_tmp[2] = w_tmp[2] * wtot_inv; } else /* dummy values for zero area face */ - w_tmp[0] = w_tmp[1] = w_tmp[2] = 1.0f/3.0f; + w_tmp[0] = w_tmp[1] = w_tmp[2] = 1.0f / 3.0f; /* done mimicing barycentric_weights_v2() */ - return (v1[2]*w_tmp[0]) + (v2[2]*w_tmp[1]) + (v3[2]*w_tmp[2]); + return (v1[2] * w_tmp[0]) + (v2[2] * w_tmp[1]) + (v3[2] * w_tmp[2]); } @@ -661,7 +659,7 @@ static int project_paint_PickFace(const ProjPaintState *ps, float pt[2], float w MFace *mf; bucket_index = project_bucket_offset_safe(ps, pt); - if (bucket_index==-1) + if (bucket_index == -1) return -1; @@ -669,17 +667,17 @@ static int project_paint_PickFace(const ProjPaintState *ps, float pt[2], float w /* we could return 0 for 1 face buckets, as long as this function assumes * that the point its testing is only every originated from an existing face */ - for (node= ps->bucketFaces[bucket_index]; node; node= node->next) { + for (node = ps->bucketFaces[bucket_index]; node; node = node->next) { face_index = GET_INT_FROM_POINTER(node->link); - mf= ps->dm_mface + face_index; + mf = ps->dm_mface + face_index; - v1= ps->screenCoords[mf->v1]; - v2= ps->screenCoords[mf->v2]; - v3= ps->screenCoords[mf->v3]; + v1 = ps->screenCoords[mf->v1]; + v2 = ps->screenCoords[mf->v2]; + v3 = ps->screenCoords[mf->v3]; if (isect_point_tri_v2(pt, v1, v2, v3)) { - if (ps->is_ortho) z_depth= VecZDepthOrtho(pt, v1, v2, v3, w_tmp); - else z_depth= VecZDepthPersp(pt, v1, v2, v3, w_tmp); + if (ps->is_ortho) z_depth = VecZDepthOrtho(pt, v1, v2, v3, w_tmp); + else z_depth = VecZDepthPersp(pt, v1, v2, v3, w_tmp); if (z_depth < z_depth_best) { best_face_index = face_index; @@ -689,15 +687,15 @@ static int project_paint_PickFace(const ProjPaintState *ps, float pt[2], float w } } else if (mf->v4) { - v4= ps->screenCoords[mf->v4]; + v4 = ps->screenCoords[mf->v4]; if (isect_point_tri_v2(pt, v1, v3, v4)) { - if (ps->is_ortho) z_depth= VecZDepthOrtho(pt, v1, v3, v4, w_tmp); - else z_depth= VecZDepthPersp(pt, v1, v3, v4, w_tmp); + if (ps->is_ortho) z_depth = VecZDepthOrtho(pt, v1, v3, v4, w_tmp); + else z_depth = VecZDepthPersp(pt, v1, v3, v4, w_tmp); if (z_depth < z_depth_best) { best_face_index = face_index; - best_side= 1; + best_side = 1; z_depth_best = z_depth; copy_v3_v3(w, w_tmp); } @@ -784,10 +782,10 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float //if (xi<0 || xi>=ibuf->x || yi<0 || yi>=ibuf->y) return 0; /* wrap */ - xi = ((int)(uv[0]*ibuf->x)) % ibuf->x; - if (xi<0) xi += ibuf->x; - yi = ((int)(uv[1]*ibuf->y)) % ibuf->y; - if (yi<0) yi += ibuf->y; + xi = ((int)(uv[0] * ibuf->x)) % ibuf->x; + if (xi < 0) xi += ibuf->x; + yi = ((int)(uv[1] * ibuf->y)) % ibuf->y; + if (yi < 0) yi += ibuf->y; if (rgba) { @@ -805,7 +803,7 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float copy_v4_v4(rgba_fp, ((float *)ibuf->rect_float + ((xi + yi * ibuf->x) * 4))); } else { - char *tmp_ch= ((char *)ibuf->rect) + ((xi + yi * ibuf->x) * 4); + char *tmp_ch = ((char *)ibuf->rect) + ((xi + yi * ibuf->x) * 4); IMAPAINT_CHAR_RGBA_TO_FLOAT(rgba_fp, tmp_ch); } } @@ -828,7 +826,7 @@ static int project_paint_occlude_ptv(float pt[3], float v1[4], float v2[4], floa /* do a 2D point in try intersection */ if (!isect_point_tri_v2(pt, v1, v2, v3)) - return 0; /* we know there is */ + return 0; /* we know there is */ /* From here on we know there IS an intersection */ @@ -850,10 +848,9 @@ static int project_paint_occlude_ptv(float pt[3], float v1[4], float v2[4], floa } -static int project_paint_occlude_ptv_clip( - const ProjPaintState *ps, const MFace *mf, - float pt[3], float v1[4], float v2[4], float v3[4], - const int side ) +static int project_paint_occlude_ptv_clip(const ProjPaintState *ps, const MFace *mf, + float pt[3], float v1[4], float v2[4], float v3[4], + const int side) { float w[3], wco[3]; int ret = project_paint_occlude_ptv(pt, v1, v2, v3, w, ps->is_ortho); @@ -861,14 +858,14 @@ static int project_paint_occlude_ptv_clip( if (ret <= 0) return ret; - if (ret==1) { /* weights not calculated */ - if (ps->is_ortho) barycentric_weights_v2(v1, v2, v3, pt, w); - else barycentric_weights_v2_persp(v1, v2, v3, pt, w); + if (ret == 1) { /* weights not calculated */ + if (ps->is_ortho) barycentric_weights_v2(v1, v2, v3, pt, w); + else barycentric_weights_v2_persp(v1, v2, v3, pt, w); } /* Test if we're in the clipped area, */ - if (side) interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v3].co, ps->dm_mvert[mf->v4].co, w); - else interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v2].co, ps->dm_mvert[mf->v3].co, w); + if (side) interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v3].co, ps->dm_mvert[mf->v4].co, w); + else interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v2].co, ps->dm_mvert[mf->v3].co, w); if (!ED_view3d_clipping_test(ps->rv3d, wco, TRUE)) { return 1; @@ -887,7 +884,7 @@ static int project_bucket_point_occluded(const ProjPaintState *ps, LinkNode *buc int face_index; int isect_ret; float w[3]; /* not needed when clipping */ - const short do_clip= ps->rv3d ? ps->rv3d->rflag & RV3D_CLIPPING : 0; + const short do_clip = ps->rv3d ? ps->rv3d->rflag & RV3D_CLIPPING : 0; /* we could return 0 for 1 face buckets, as long as this function assumes * that the point its testing is only every originated from an existing face */ @@ -903,13 +900,13 @@ static int project_bucket_point_occluded(const ProjPaintState *ps, LinkNode *buc isect_ret = project_paint_occlude_ptv(pixelScreenCo, ps->screenCoords[mf->v1], ps->screenCoords[mf->v2], ps->screenCoords[mf->v3], w, ps->is_ortho); /* Note, if isect_ret==-1 then we don't want to test the other side of the quad */ - if (isect_ret==0 && mf->v4) { + if (isect_ret == 0 && mf->v4) { if (do_clip) isect_ret = project_paint_occlude_ptv_clip(ps, mf, pixelScreenCo, ps->screenCoords[mf->v1], ps->screenCoords[mf->v3], ps->screenCoords[mf->v4], 1); else isect_ret = project_paint_occlude_ptv(pixelScreenCo, ps->screenCoords[mf->v1], ps->screenCoords[mf->v3], ps->screenCoords[mf->v4], w, ps->is_ortho); } - if (isect_ret>=1) { + if (isect_ret >= 1) { /* TODO - we may want to cache the first hit, * it is not possible to swap the face order in the list anymore */ return 1; @@ -928,28 +925,28 @@ static int line_isect_y(const float p1[2], const float p2[2], const float y_leve { float y_diff; - if (y_level==p1[1]) { /* are we touching the first point? - no interpolation needed */ + if (y_level == p1[1]) { /* are we touching the first point? - no interpolation needed */ *x_isect = p1[0]; return ISECT_TRUE_P1; } - if (y_level==p2[1]) { /* are we touching the second point? - no interpolation needed */ + if (y_level == p2[1]) { /* are we touching the second point? - no interpolation needed */ *x_isect = p2[0]; return ISECT_TRUE_P2; } - y_diff= fabsf(p1[1]-p2[1]); /* yuck, horizontal line, we cant do much here */ + y_diff = fabsf(p1[1] - p2[1]); /* yuck, horizontal line, we cant do much here */ if (y_diff < 0.000001f) { - *x_isect = (p1[0]+p2[0]) * 0.5f; + *x_isect = (p1[0] + p2[0]) * 0.5f; return ISECT_TRUE; } if (p1[1] > y_level && p2[1] < y_level) { - *x_isect = (p2[0]*(p1[1]-y_level) + p1[0]*(y_level-p2[1])) / y_diff; /*(p1[1]-p2[1]);*/ + *x_isect = (p2[0] * (p1[1] - y_level) + p1[0] * (y_level - p2[1])) / y_diff; /*(p1[1]-p2[1]);*/ return ISECT_TRUE; } else if (p1[1] < y_level && p2[1] > y_level) { - *x_isect = (p2[0]*(y_level-p1[1]) + p1[0]*(p2[1]-y_level)) / y_diff; /*(p2[1]-p1[1]);*/ + *x_isect = (p2[0] * (y_level - p1[1]) + p1[0] * (p2[1] - y_level)) / y_diff; /*(p2[1]-p1[1]);*/ return ISECT_TRUE; } else { @@ -961,28 +958,28 @@ static int line_isect_x(const float p1[2], const float p2[2], const float x_leve { float x_diff; - if (x_level==p1[0]) { /* are we touching the first point? - no interpolation needed */ + if (x_level == p1[0]) { /* are we touching the first point? - no interpolation needed */ *y_isect = p1[1]; return ISECT_TRUE_P1; } - if (x_level==p2[0]) { /* are we touching the second point? - no interpolation needed */ + if (x_level == p2[0]) { /* are we touching the second point? - no interpolation needed */ *y_isect = p2[1]; return ISECT_TRUE_P2; } - x_diff= fabsf(p1[0]-p2[0]); /* yuck, horizontal line, we cant do much here */ + x_diff = fabsf(p1[0] - p2[0]); /* yuck, horizontal line, we cant do much here */ if (x_diff < 0.000001f) { /* yuck, vertical line, we cant do much here */ - *y_isect = (p1[0]+p2[0]) * 0.5f; + *y_isect = (p1[0] + p2[0]) * 0.5f; return ISECT_TRUE; } if (p1[0] > x_level && p2[0] < x_level) { - *y_isect = (p2[1]*(p1[0]-x_level) + p1[1]*(x_level-p2[0])) / x_diff; /*(p1[0]-p2[0]);*/ + *y_isect = (p2[1] * (p1[0] - x_level) + p1[1] * (x_level - p2[0])) / x_diff; /*(p1[0]-p2[0]);*/ return ISECT_TRUE; } else if (p1[0] < x_level && p2[0] > x_level) { - *y_isect = (p2[1]*(x_level-p1[0]) + p1[1]*(p2[0]-x_level)) / x_diff; /*(p2[0]-p1[0]);*/ + *y_isect = (p2[1] * (x_level - p1[0]) + p1[1] * (p2[0] - x_level)) / x_diff; /*(p2[0]-p1[0]);*/ return ISECT_TRUE; } else { @@ -1010,7 +1007,7 @@ static int cmp_uv(const float vec2a[2], const float vec2b[2]) if (xb < 0.0f) xb += 1.0f; if (yb < 0.0f) yb += 1.0f; - return ((fabsf(xa-xb) < PROJ_GEOM_TOLERANCE) && (fabsf(ya-yb) < PROJ_GEOM_TOLERANCE)) ? 1:0; + return ((fabsf(xa - xb) < PROJ_GEOM_TOLERANCE) && (fabsf(ya - yb) < PROJ_GEOM_TOLERANCE)) ? 1 : 0; } #endif @@ -1018,11 +1015,12 @@ static int cmp_uv(const float vec2a[2], const float vec2b[2]) * return zero if there is no area in the returned rectangle */ #ifndef PROJ_DEBUG_NOSEAMBLEED static int pixel_bounds_uv( - const float uv1[2], const float uv2[2], const float uv3[2], const float uv4[2], - rcti *bounds_px, - const int ibuf_x, const int ibuf_y, - int is_quad -) { + const float uv1[2], const float uv2[2], const float uv3[2], const float uv4[2], + rcti *bounds_px, + const int ibuf_x, const int ibuf_y, + int is_quad + ) +{ float min_uv[2], max_uv[2]; /* UV bounds */ INIT_MINMAX2(min_uv, max_uv); @@ -1036,8 +1034,8 @@ static int pixel_bounds_uv( bounds_px->xmin = (int)(ibuf_x * min_uv[0]); bounds_px->ymin = (int)(ibuf_y * min_uv[1]); - bounds_px->xmax = (int)(ibuf_x * max_uv[0]) +1; - bounds_px->ymax = (int)(ibuf_y * max_uv[1]) +1; + bounds_px->xmax = (int)(ibuf_x * max_uv[0]) + 1; + bounds_px->ymax = (int)(ibuf_y * max_uv[1]) + 1; /*printf("%d %d %d %d \n", min_px[0], min_px[1], max_px[0], max_px[1]);*/ @@ -1046,11 +1044,11 @@ static int pixel_bounds_uv( } #endif -static int pixel_bounds_array(float (* uv)[2], rcti *bounds_px, const int ibuf_x, const int ibuf_y, int tot) +static int pixel_bounds_array(float (*uv)[2], rcti *bounds_px, const int ibuf_x, const int ibuf_y, int tot) { float min_uv[2], max_uv[2]; /* UV bounds */ - if (tot==0) { + if (tot == 0) { return 0; } @@ -1064,8 +1062,8 @@ static int pixel_bounds_array(float (* uv)[2], rcti *bounds_px, const int ibuf_x bounds_px->xmin = (int)(ibuf_x * min_uv[0]); bounds_px->ymin = (int)(ibuf_y * min_uv[1]); - bounds_px->xmax = (int)(ibuf_x * max_uv[0]) +1; - bounds_px->ymax = (int)(ibuf_y * max_uv[1]) +1; + bounds_px->xmax = (int)(ibuf_x * max_uv[0]) + 1; + bounds_px->ymax = (int)(ibuf_y * max_uv[1]) + 1; /*printf("%d %d %d %d \n", min_px[0], min_px[1], max_px[0], max_px[1]);*/ @@ -1103,15 +1101,15 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o /* We need to know the order of the verts in the adjacent face * set the i1_fidx and i2_fidx to (0,1,2,3) */ - if (mf->v1==i1) i1_fidx = 0; - else if (mf->v2==i1) i1_fidx = 1; - else if (mf->v3==i1) i1_fidx = 2; - else if (mf->v4 && mf->v4==i1) i1_fidx = 3; - - if (mf->v1==i2) i2_fidx = 0; - else if (mf->v2==i2) i2_fidx = 1; - else if (mf->v3==i2) i2_fidx = 2; - else if (mf->v4 && mf->v4==i2) i2_fidx = 3; + if (mf->v1 == i1) i1_fidx = 0; + else if (mf->v2 == i1) i1_fidx = 1; + else if (mf->v3 == i1) i1_fidx = 2; + else if (mf->v4 && mf->v4 == i1) i1_fidx = 3; + + if (mf->v1 == i2) i2_fidx = 0; + else if (mf->v2 == i2) i2_fidx = 1; + else if (mf->v3 == i2) i2_fidx = 2; + else if (mf->v4 && mf->v4 == i2) i2_fidx = 3; /* Only need to check if 'i2_fidx' is valid because we know i1_fidx is the same vert on both faces */ if (i2_fidx != -1) { @@ -1126,9 +1124,9 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o *orig_fidx = (i1_fidx < i2_fidx) ? i1_fidx : i2_fidx; /* first test if they have the same image */ - if ( (orig_tpage == tpage) && - cmp_uv(orig_tf->uv[orig_i1_fidx], tf->uv[i1_fidx]) && - cmp_uv(orig_tf->uv[orig_i2_fidx], tf->uv[i2_fidx]) ) + if ((orig_tpage == tpage) && + cmp_uv(orig_tf->uv[orig_i1_fidx], tf->uv[i1_fidx]) && + cmp_uv(orig_tf->uv[orig_i2_fidx], tf->uv[i2_fidx]) ) { // printf("SEAM (NONE)\n"); return 0; @@ -1151,14 +1149,14 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o * note that the image aspect is taken into account */ static void uv_image_outset(float (*orig_uv)[2], float (*outset_uv)[2], const float scaler, const int ibuf_x, const int ibuf_y, const int is_quad) { - float a1, a2, a3, a4=0.0f; + float a1, a2, a3, a4 = 0.0f; float puv[4][2]; /* pixelspace uv's */ float no1[2], no2[2], no3[2], no4[2]; /* normals */ float dir1[2], dir2[2], dir3[2], dir4[2]; float ibuf_inv[2]; - ibuf_inv[0]= 1.0f / (float)ibuf_x; - ibuf_inv[1]= 1.0f / (float)ibuf_y; + ibuf_inv[0] = 1.0f / (float)ibuf_x; + ibuf_inv[1] = 1.0f / (float)ibuf_y; /* make UV's in pixel space so we can */ puv[0][0] = orig_uv[0][0] * ibuf_x; @@ -1196,15 +1194,15 @@ static void uv_image_outset(float (*orig_uv)[2], float (*outset_uv)[2], const fl * This is incorrect. Its already given radians but without it wont work. * need to look into a fix - campbell */ if (is_quad) { - a1 = shell_angle_to_dist(angle_normalized_v2v2(dir4, dir1) * ((float)M_PI/180.0f)); - a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * ((float)M_PI/180.0f)); - a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * ((float)M_PI/180.0f)); - a4 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir4) * ((float)M_PI/180.0f)); + a1 = shell_angle_to_dist(angle_normalized_v2v2(dir4, dir1) * ((float)M_PI / 180.0f)); + a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * ((float)M_PI / 180.0f)); + a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * ((float)M_PI / 180.0f)); + a4 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir4) * ((float)M_PI / 180.0f)); } else { - a1 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir1) * ((float)M_PI/180.0f)); - a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * ((float)M_PI/180.0f)); - a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * ((float)M_PI/180.0f)); + a1 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir1) * ((float)M_PI / 180.0f)); + a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * ((float)M_PI / 180.0f)); + a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * ((float)M_PI / 180.0f)); } if (is_quad) { @@ -1216,10 +1214,10 @@ static void uv_image_outset(float (*orig_uv)[2], float (*outset_uv)[2], const fl normalize_v2(no2); normalize_v2(no3); normalize_v2(no4); - mul_v2_fl(no1, a1*scaler); - mul_v2_fl(no2, a2*scaler); - mul_v2_fl(no3, a3*scaler); - mul_v2_fl(no4, a4*scaler); + mul_v2_fl(no1, a1 * scaler); + mul_v2_fl(no2, a2 * scaler); + mul_v2_fl(no3, a3 * scaler); + mul_v2_fl(no4, a4 * scaler); add_v2_v2v2(outset_uv[0], puv[0], no1); add_v2_v2v2(outset_uv[1], puv[1], no2); add_v2_v2v2(outset_uv[2], puv[2], no3); @@ -1236,9 +1234,9 @@ static void uv_image_outset(float (*orig_uv)[2], float (*outset_uv)[2], const fl normalize_v2(no1); normalize_v2(no2); normalize_v2(no3); - mul_v2_fl(no1, a1*scaler); - mul_v2_fl(no2, a2*scaler); - mul_v2_fl(no3, a3*scaler); + mul_v2_fl(no1, a1 * scaler); + mul_v2_fl(no2, a2 * scaler); + mul_v2_fl(no3, a3 * scaler); add_v2_v2v2(outset_uv[0], puv[0], no1); add_v2_v2v2(outset_uv[1], puv[1], no2); add_v2_v2v2(outset_uv[2], puv[2], no3); @@ -1262,16 +1260,16 @@ static void project_face_seams_init(const ProjPaintState *ps, const int face_ind int fidx2 = 0; /* next fidx in the face (0,1,2,3) -> (1,2,3,0) or (0,1,2) -> (1,2,0) for a tri */ do { - if ((ps->faceSeamFlags[face_index] & (1<<fidx1|16<<fidx1)) == 0) { + if ((ps->faceSeamFlags[face_index] & (1 << fidx1 | 16 << fidx1)) == 0) { if (check_seam(ps, face_index, fidx1, fidx2, &other_face, &other_fidx)) { - ps->faceSeamFlags[face_index] |= 1<<fidx1; + ps->faceSeamFlags[face_index] |= 1 << fidx1; if (other_face != -1) - ps->faceSeamFlags[other_face] |= 1<<other_fidx; + ps->faceSeamFlags[other_face] |= 1 << other_fidx; } else { - ps->faceSeamFlags[face_index] |= 16<<fidx1; + ps->faceSeamFlags[face_index] |= 16 << fidx1; if (other_face != -1) - ps->faceSeamFlags[other_face] |= 16<<other_fidx; /* second 4 bits for disabled */ + ps->faceSeamFlags[other_face] |= 16 << other_fidx; /* second 4 bits for disabled */ } } @@ -1286,11 +1284,11 @@ static void project_face_seams_init(const ProjPaintState *ps, const int face_ind * * This is used for finding a pixels location in screenspace for painting */ static void screen_px_from_ortho( - float uv[2], - float v1co[3], float v2co[3], float v3co[3], /* Screenspace coords */ - float uv1co[2], float uv2co[2], float uv3co[2], - float pixelScreenCo[4], - float w[3]) + float uv[2], + float v1co[3], float v2co[3], float v3co[3], /* Screenspace coords */ + float uv1co[2], float uv2co[2], float uv3co[2], + float pixelScreenCo[4], + float w[3]) { barycentric_weights_v2(uv1co, uv2co, uv3co, uv, w); interp_v3_v3v3v3(pixelScreenCo, v1co, v2co, v3co, w); @@ -1299,11 +1297,11 @@ static void screen_px_from_ortho( /* same as screen_px_from_ortho except we need to take into account * the perspective W coord for each vert */ static void screen_px_from_persp( - float uv[2], - float v1co[4], float v2co[4], float v3co[4], /* screenspace coords */ - float uv1co[2], float uv2co[2], float uv3co[2], - float pixelScreenCo[4], - float w[3]) + float uv[2], + float v1co[4], float v2co[4], float v3co[4], /* screenspace coords */ + float uv1co[2], float uv2co[2], float uv3co[2], + float pixelScreenCo[4], + float w[3]) { float wtot_inv, wtot; @@ -1314,7 +1312,7 @@ static void screen_px_from_persp( w[1] *= v2co[3]; w[2] *= v3co[3]; - wtot = w[0]+w[1]+w[2]; + wtot = w[0] + w[1] + w[2]; if (wtot > 0.0f) { wtot_inv = 1.0f / wtot; @@ -1323,7 +1321,7 @@ static void screen_px_from_persp( w[2] *= wtot_inv; } else { - w[0] = w[1] = w[2] = 1.0f/3.0f; /* dummy values for zero area face */ + w[0] = w[1] = w[2] = 1.0f / 3.0f; /* dummy values for zero area face */ } /* done re-weighting */ @@ -1336,7 +1334,7 @@ static void project_face_pixel(const MTFace *tf_other, ImBuf *ibuf_other, const float uv_other[2], x, y; uvCo1 = (float *)tf_other->uv[0]; - if (side==1) { + if (side == 1) { uvCo2 = (float *)tf_other->uv[2]; uvCo3 = (float *)tf_other->uv[3]; } @@ -1345,7 +1343,7 @@ static void project_face_pixel(const MTFace *tf_other, ImBuf *ibuf_other, const uvCo3 = (float *)tf_other->uv[2]; } - interp_v2_v2v2v2(uv_other, uvCo1, uvCo2, uvCo3, (float*)w); + interp_v2_v2v2v2(uv_other, uvCo1, uvCo2, uvCo3, (float *)w); /* use */ uvco_to_wrapped_pxco(uv_other, ibuf_other->x, ibuf_other->y, &x, &y); @@ -1362,10 +1360,10 @@ static void project_face_pixel(const MTFace *tf_other, ImBuf *ibuf_other, const /* run this outside project_paint_uvpixel_init since pixels with mask 0 don't need init */ static float project_paint_uvpixel_mask( - const ProjPaintState *ps, - const int face_index, - const int side, - const float w[3]) + const ProjPaintState *ps, + const int face_index, + const int side, + const float w[3]) { float mask; @@ -1384,10 +1382,10 @@ static float project_paint_uvpixel_mask( project_face_pixel(tf_other, ibuf_other, w, side, rgba_ub, rgba_f); if (ibuf_other->rect_float) { /* from float to float */ - mask = ((rgba_f[0]+rgba_f[1]+rgba_f[2])/3.0f) * rgba_f[3]; + mask = ((rgba_f[0] + rgba_f[1] + rgba_f[2]) / 3.0f) * rgba_f[3]; } else { /* from char to float */ - mask = ((rgba_ub[0]+rgba_ub[1]+rgba_ub[2])/(256*3.0f)) * (rgba_ub[3]/256.0f); + mask = ((rgba_ub[0] + rgba_ub[1] + rgba_ub[2]) / (256 * 3.0f)) * (rgba_ub[3] / 256.0f); } if (!ps->do_layer_stencil_inv) /* matching the gimps layer mask black/white rules, white==full opacity */ @@ -1411,7 +1409,7 @@ static float project_paint_uvpixel_mask( short *no1, *no2, *no3; float no[3], angle; no1 = ps->dm_mvert[mf->v1].no; - if (side==1) { + if (side == 1) { no2 = ps->dm_mvert[mf->v3].no; no3 = ps->dm_mvert[mf->v4].no; } @@ -1420,9 +1418,9 @@ static float project_paint_uvpixel_mask( no3 = ps->dm_mvert[mf->v3].no; } - no[0] = w[0]*no1[0] + w[1]*no2[0] + w[2]*no3[0]; - no[1] = w[0]*no1[1] + w[1]*no2[1] + w[2]*no3[1]; - no[2] = w[0]*no1[2] + w[1]*no2[2] + w[2]*no3[2]; + no[0] = w[0] * no1[0] + w[1] * no2[0] + w[2] * no3[0]; + no[1] = w[0] * no1[1] + w[1] * no2[1] + w[2] * no3[1]; + no[2] = w[0] * no1[2] + w[1] * no2[2] + w[2] * no3[2]; normalize_v3(no); /* now we can use the normal as a mask */ @@ -1434,7 +1432,7 @@ static float project_paint_uvpixel_mask( float viewDirPersp[3]; float *co1, *co2, *co3; co1 = ps->dm_mvert[mf->v1].co; - if (side==1) { + if (side == 1) { co2 = ps->dm_mvert[mf->v3].co; co3 = ps->dm_mvert[mf->v4].co; } @@ -1444,9 +1442,9 @@ static float project_paint_uvpixel_mask( } /* Get the direction from the viewPoint to the pixel and normalize */ - viewDirPersp[0] = (ps->viewPos[0] - (w[0]*co1[0] + w[1]*co2[0] + w[2]*co3[0])); - viewDirPersp[1] = (ps->viewPos[1] - (w[0]*co1[1] + w[1]*co2[1] + w[2]*co3[1])); - viewDirPersp[2] = (ps->viewPos[2] - (w[0]*co1[2] + w[1]*co2[2] + w[2]*co3[2])); + viewDirPersp[0] = (ps->viewPos[0] - (w[0] * co1[0] + w[1] * co2[0] + w[2] * co3[0])); + viewDirPersp[1] = (ps->viewPos[1] - (w[0] * co1[1] + w[1] * co2[1] + w[2] * co3[1])); + viewDirPersp[2] = (ps->viewPos[2] - (w[0] * co1[2] + w[1] * co2[2] + w[2] * co3[2])); normalize_v3(viewDirPersp); angle = angle_normalized_v3v3(viewDirPersp, no); @@ -1470,30 +1468,30 @@ static float project_paint_uvpixel_mask( /* run this function when we know a bucket's, face's pixel can be initialized, * return the ProjPixel which is added to 'ps->bucketRect[bucket_index]' */ static ProjPixel *project_paint_uvpixel_init( - const ProjPaintState *ps, - MemArena *arena, - const ImBuf *ibuf, - short x_px, short y_px, - const float mask, - const int face_index, - const int image_index, - const float pixelScreenCo[4], - const int side, - const float w[3]) + const ProjPaintState *ps, + MemArena *arena, + const ImBuf *ibuf, + short x_px, short y_px, + const float mask, + const int face_index, + const int image_index, + const float pixelScreenCo[4], + const int side, + const float w[3]) { ProjPixel *projPixel; short size; /* wrap pixel location */ x_px = x_px % ibuf->x; - if (x_px<0) x_px += ibuf->x; + if (x_px < 0) x_px += ibuf->x; y_px = y_px % ibuf->y; - if (y_px<0) y_px += ibuf->y; + if (y_px < 0) y_px += ibuf->y; - if (ps->tool==PAINT_TOOL_CLONE) { + if (ps->tool == PAINT_TOOL_CLONE) { size = sizeof(ProjPixelClone); } - else if (ps->tool==PAINT_TOOL_SMEAR) { + else if (ps->tool == PAINT_TOOL_SMEAR) { size = sizeof(ProjPixelClone); } else { @@ -1529,7 +1527,7 @@ static ProjPixel *project_paint_uvpixel_init( ((int)(((float)y_px / (float)ibuf->y) * PROJ_BOUNDBOX_DIV)) * PROJ_BOUNDBOX_DIV; /* done with view3d_project_float inline */ - if (ps->tool==PAINT_TOOL_CLONE) { + if (ps->tool == PAINT_TOOL_CLONE) { if (ps->dm_mtface_clone) { ImBuf *ibuf_other; Image *other_tpage = project_paint_face_image(ps, ps->dm_mtface_clone, face_index); @@ -1589,8 +1587,8 @@ static ProjPixel *project_paint_uvpixel_init( } #ifdef PROJ_DEBUG_PAINT - if (ibuf->rect_float) projPixel->pixel.f_pt[0] = 0; - else projPixel->pixel.ch_pt[0] = 0; + if (ibuf->rect_float) projPixel->pixel.f_pt[0] = 0; + else projPixel->pixel.ch_pt[0] = 0; #endif projPixel->image_index = image_index; @@ -1598,13 +1596,13 @@ static ProjPixel *project_paint_uvpixel_init( } static int line_clip_rect2f( - rctf *rect, - const float l1[2], const float l2[2], - float l1_clip[2], float l2_clip[2]) + rctf *rect, + const float l1[2], const float l2[2], + float l1_clip[2], float l2_clip[2]) { /* first account for horizontal, then vertical lines */ /* horiz */ - if (fabsf(l1[1]-l2[1]) < PROJ_GEOM_TOLERANCE) { + if (fabsf(l1[1] - l2[1]) < PROJ_GEOM_TOLERANCE) { /* is the line out of range on its Y axis? */ if (l1[1] < rect->ymin || l1[1] > rect->ymax) { return 0; @@ -1615,7 +1613,7 @@ static int line_clip_rect2f( } - if (fabsf(l1[0]-l2[0]) < PROJ_GEOM_TOLERANCE) { /* this is a single point (or close to)*/ + if (fabsf(l1[0] - l2[0]) < PROJ_GEOM_TOLERANCE) { /* this is a single point (or close to)*/ if (BLI_in_rctf(rect, l1[0], l1[1])) { copy_v2_v2(l1_clip, l1); copy_v2_v2(l2_clip, l2); @@ -1632,7 +1630,7 @@ static int line_clip_rect2f( CLAMP(l2_clip[0], rect->xmin, rect->xmax); return 1; } - else if (fabsf(l1[0]-l2[0]) < PROJ_GEOM_TOLERANCE) { + else if (fabsf(l1[0] - l2[0]) < PROJ_GEOM_TOLERANCE) { /* is the line out of range on its X axis? */ if (l1[0] < rect->xmin || l1[0] > rect->xmax) { return 0; @@ -1643,7 +1641,7 @@ static int line_clip_rect2f( return 0; } - if (fabsf(l1[1]-l2[1]) < PROJ_GEOM_TOLERANCE) { /* this is a single point (or close to)*/ + if (fabsf(l1[1] - l2[1]) < PROJ_GEOM_TOLERANCE) { /* this is a single point (or close to)*/ if (BLI_in_rctf(rect, l1[0], l1[1])) { copy_v2_v2(l1_clip, l1); copy_v2_v2(l2_clip, l2); @@ -1805,9 +1803,9 @@ static float len_squared_v2v2_alt(const float *v1, const float v2_1, const float { float x, y; - x = v1[0]-v2_1; - y = v1[1]-v2_2; - return x*x+y*y; + x = v1[0] - v2_1; + y = v1[1] - v2_2; + return x * x + y * y; } /* note, use a squared value so we can use len_squared_v2v2 @@ -1825,8 +1823,8 @@ static int project_bucket_isect_circle(const float cent[2], const float radius_s return 1; #endif - if ( (bucket_bounds->xmin <= cent[0] && bucket_bounds->xmax >= cent[0]) || - (bucket_bounds->ymin <= cent[1] && bucket_bounds->ymax >= cent[1]) ) + if ((bucket_bounds->xmin <= cent[0] && bucket_bounds->xmax >= cent[0]) || + (bucket_bounds->ymin <= cent[1] && bucket_bounds->ymax >= cent[1])) { return 1; } @@ -1868,11 +1866,11 @@ static int project_bucket_isect_circle(const float cent[2], const float radius_s * however switching back to this for ortho is always an option */ static void rect_to_uvspace_ortho( - rctf *bucket_bounds, - float *v1coSS, float *v2coSS, float *v3coSS, - float *uv1co, float *uv2co, float *uv3co, - float bucket_bounds_uv[4][2], - const int flip) + rctf *bucket_bounds, + float *v1coSS, float *v2coSS, float *v3coSS, + float *uv1co, float *uv2co, float *uv3co, + float bucket_bounds_uv[4][2], + const int flip) { float uv[2]; float w[3]; @@ -1881,32 +1879,32 @@ static void rect_to_uvspace_ortho( uv[0] = bucket_bounds->xmax; uv[1] = bucket_bounds->ymin; barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?3:0], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 3 : 0], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmax; // set above uv[1] = bucket_bounds->ymax; barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?2:1], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 2 : 1], uv1co, uv2co, uv3co, w); uv[0] = bucket_bounds->xmin; //uv[1] = bucket_bounds->ymax; // set above barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?1:2], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 1 : 2], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmin; // set above uv[1] = bucket_bounds->ymin; barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?0:3], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 0 : 3], uv1co, uv2co, uv3co, w); } /* same as above but use barycentric_weights_v2_persp */ static void rect_to_uvspace_persp( - rctf *bucket_bounds, - float *v1coSS, float *v2coSS, float *v3coSS, - float *uv1co, float *uv2co, float *uv3co, - float bucket_bounds_uv[4][2], - const int flip - ) + rctf *bucket_bounds, + float *v1coSS, float *v2coSS, float *v3coSS, + float *uv1co, float *uv2co, float *uv3co, + float bucket_bounds_uv[4][2], + const int flip + ) { float uv[2]; float w[3]; @@ -1915,22 +1913,22 @@ static void rect_to_uvspace_persp( uv[0] = bucket_bounds->xmax; uv[1] = bucket_bounds->ymin; barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?3:0], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 3 : 0], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmax; // set above uv[1] = bucket_bounds->ymax; barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?2:1], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 2 : 1], uv1co, uv2co, uv3co, w); uv[0] = bucket_bounds->xmin; //uv[1] = bucket_bounds->ymax; // set above barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?1:2], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 1 : 2], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmin; // set above uv[1] = bucket_bounds->ymin; barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); - interp_v2_v2v2v2(bucket_bounds_uv[flip?0:3], uv1co, uv2co, uv3co, w); + interp_v2_v2v2v2(bucket_bounds_uv[flip ? 0 : 3], uv1co, uv2co, uv3co, w); } /* This works as we need it to but we can save a few steps and not use it */ @@ -1940,24 +1938,24 @@ static float angle_2d_clockwise(const float p1[2], const float p2[2], const floa { float v1[2], v2[2]; - v1[0] = p1[0]-p2[0]; v1[1] = p1[1]-p2[1]; - v2[0] = p3[0]-p2[0]; v2[1] = p3[1]-p2[1]; + v1[0] = p1[0] - p2[0]; v1[1] = p1[1] - p2[1]; + v2[0] = p3[0] - p2[0]; v2[1] = p3[1] - p2[1]; - return -atan2(v1[0]*v2[1] - v1[1]*v2[0], v1[0]*v2[0]+v1[1]*v2[1]); + return -atan2(v1[0] * v2[1] - v1[1] * v2[0], v1[0] * v2[0] + v1[1] * v2[1]); } #endif #define ISECT_1 (1) -#define ISECT_2 (1<<1) -#define ISECT_3 (1<<2) -#define ISECT_4 (1<<3) -#define ISECT_ALL3 ((1<<3)-1) -#define ISECT_ALL4 ((1<<4)-1) +#define ISECT_2 (1 << 1) +#define ISECT_3 (1 << 2) +#define ISECT_4 (1 << 3) +#define ISECT_ALL3 ((1 << 3) - 1) +#define ISECT_ALL4 ((1 << 4) - 1) /* limit must be a fraction over 1.0f */ static int IsectPT2Df_limit(float pt[2], float v1[2], float v2[2], float v3[2], float limit) { - return ((area_tri_v2(pt,v1,v2) + area_tri_v2(pt,v2,v3) + area_tri_v2(pt,v3,v1)) / (area_tri_v2(v1,v2,v3))) < limit; + return ((area_tri_v2(pt, v1, v2) + area_tri_v2(pt, v2, v3) + area_tri_v2(pt, v3, v1)) / (area_tri_v2(v1, v2, v3))) < limit; } /* Clip the face by a bucket and set the uv-space bucket_bounds_uv @@ -1965,21 +1963,21 @@ static int IsectPT2Df_limit(float pt[2], float v1[2], float v2[2], float v3[2], * */ static int float_z_sort_flip(const void *p1, const void *p2) { - return (((float *)p1)[2] < ((float *)p2)[2] ? 1:-1); + return (((float *)p1)[2] < ((float *)p2)[2] ? 1 : -1); } static int float_z_sort(const void *p1, const void *p2) { - return (((float *)p1)[2] < ((float *)p2)[2] ?-1:1); + return (((float *)p1)[2] < ((float *)p2)[2] ? -1 : 1); } static void project_bucket_clip_face( - const int is_ortho, - rctf *bucket_bounds, - float *v1coSS, float *v2coSS, float *v3coSS, - float *uv1co, float *uv2co, float *uv3co, - float bucket_bounds_uv[8][2], - int *tot) + const int is_ortho, + rctf *bucket_bounds, + float *v1coSS, float *v2coSS, float *v3coSS, + float *uv1co, float *uv2co, float *uv3co, + float bucket_bounds_uv[8][2], + int *tot) { int inside_bucket_flag = 0; int inside_face_flag = 0; @@ -1989,8 +1987,8 @@ static void project_bucket_clip_face( /* get the UV space bounding box */ inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v1coSS[0], v1coSS[1]); - inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v2coSS[0], v2coSS[1]) << 1; - inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v3coSS[0], v3coSS[1]) << 2; + inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v2coSS[0], v2coSS[1]) << 1; + inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v3coSS[0], v3coSS[1]) << 2; if (inside_bucket_flag == ISECT_ALL3) { /* all screenspace points are inside the bucket bounding box, this means we don't need to clip and can simply return the UVs */ @@ -2013,25 +2011,25 @@ static void project_bucket_clip_face( /* use IsectPT2Df_limit here so we catch points are are touching the tri edge (or a small fraction over) */ bucket_bounds_ss[0][0] = bucket_bounds->xmax; bucket_bounds_ss[0][1] = bucket_bounds->ymin; - inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[0], v1coSS, v2coSS, v3coSS, 1+PROJ_GEOM_TOLERANCE) ? ISECT_1 : 0); + inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[0], v1coSS, v2coSS, v3coSS, 1 + PROJ_GEOM_TOLERANCE) ? ISECT_1 : 0); bucket_bounds_ss[1][0] = bucket_bounds->xmax; bucket_bounds_ss[1][1] = bucket_bounds->ymax; - inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[1], v1coSS, v2coSS, v3coSS, 1+PROJ_GEOM_TOLERANCE) ? ISECT_2 : 0); + inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[1], v1coSS, v2coSS, v3coSS, 1 + PROJ_GEOM_TOLERANCE) ? ISECT_2 : 0); bucket_bounds_ss[2][0] = bucket_bounds->xmin; bucket_bounds_ss[2][1] = bucket_bounds->ymax; - inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[2], v1coSS, v2coSS, v3coSS, 1+PROJ_GEOM_TOLERANCE) ? ISECT_3 : 0); + inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[2], v1coSS, v2coSS, v3coSS, 1 + PROJ_GEOM_TOLERANCE) ? ISECT_3 : 0); bucket_bounds_ss[3][0] = bucket_bounds->xmin; bucket_bounds_ss[3][1] = bucket_bounds->ymin; - inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[3], v1coSS, v2coSS, v3coSS, 1+PROJ_GEOM_TOLERANCE) ? ISECT_4 : 0); + inside_face_flag |= (IsectPT2Df_limit(bucket_bounds_ss[3], v1coSS, v2coSS, v3coSS, 1 + PROJ_GEOM_TOLERANCE) ? ISECT_4 : 0); if (inside_face_flag == ISECT_ALL4) { /* bucket is totally inside the screenspace face, we can safely use weights */ - if (is_ortho) rect_to_uvspace_ortho(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, bucket_bounds_uv, flip); - else rect_to_uvspace_persp(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, bucket_bounds_uv, flip); + if (is_ortho) rect_to_uvspace_ortho(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, bucket_bounds_uv, flip); + else rect_to_uvspace_persp(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, bucket_bounds_uv, flip); *tot = 4; return; @@ -2066,33 +2064,33 @@ static void project_bucket_clip_face( (*tot) = 0; - if (inside_face_flag & ISECT_1) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[0]); (*tot)++; } - if (inside_face_flag & ISECT_2) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[1]); (*tot)++; } - if (inside_face_flag & ISECT_3) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[2]); (*tot)++; } - if (inside_face_flag & ISECT_4) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[3]); (*tot)++; } + if (inside_face_flag & ISECT_1) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[0]); (*tot)++; } + if (inside_face_flag & ISECT_2) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[1]); (*tot)++; } + if (inside_face_flag & ISECT_3) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[2]); (*tot)++; } + if (inside_face_flag & ISECT_4) { copy_v2_v2(isectVCosSS[*tot], bucket_bounds_ss[3]); (*tot)++; } + + if (inside_bucket_flag & ISECT_1) { copy_v2_v2(isectVCosSS[*tot], v1coSS); (*tot)++; } + if (inside_bucket_flag & ISECT_2) { copy_v2_v2(isectVCosSS[*tot], v2coSS); (*tot)++; } + if (inside_bucket_flag & ISECT_3) { copy_v2_v2(isectVCosSS[*tot], v3coSS); (*tot)++; } - if (inside_bucket_flag & ISECT_1) { copy_v2_v2(isectVCosSS[*tot], v1coSS); (*tot)++; } - if (inside_bucket_flag & ISECT_2) { copy_v2_v2(isectVCosSS[*tot], v2coSS); (*tot)++; } - if (inside_bucket_flag & ISECT_3) { copy_v2_v2(isectVCosSS[*tot], v3coSS); (*tot)++; } - - if ((inside_bucket_flag & (ISECT_1|ISECT_2)) != (ISECT_1|ISECT_2)) { + if ((inside_bucket_flag & (ISECT_1 | ISECT_2)) != (ISECT_1 | ISECT_2)) { if (line_clip_rect2f(bucket_bounds, v1coSS, v2coSS, v1_clipSS, v2_clipSS)) { - if ((inside_bucket_flag & ISECT_1)==0) { copy_v2_v2(isectVCosSS[*tot], v1_clipSS); (*tot)++; } - if ((inside_bucket_flag & ISECT_2)==0) { copy_v2_v2(isectVCosSS[*tot], v2_clipSS); (*tot)++; } + if ((inside_bucket_flag & ISECT_1) == 0) { copy_v2_v2(isectVCosSS[*tot], v1_clipSS); (*tot)++; } + if ((inside_bucket_flag & ISECT_2) == 0) { copy_v2_v2(isectVCosSS[*tot], v2_clipSS); (*tot)++; } } } - if ((inside_bucket_flag & (ISECT_2|ISECT_3)) != (ISECT_2|ISECT_3)) { + if ((inside_bucket_flag & (ISECT_2 | ISECT_3)) != (ISECT_2 | ISECT_3)) { if (line_clip_rect2f(bucket_bounds, v2coSS, v3coSS, v1_clipSS, v2_clipSS)) { - if ((inside_bucket_flag & ISECT_2)==0) { copy_v2_v2(isectVCosSS[*tot], v1_clipSS); (*tot)++; } - if ((inside_bucket_flag & ISECT_3)==0) { copy_v2_v2(isectVCosSS[*tot], v2_clipSS); (*tot)++; } + if ((inside_bucket_flag & ISECT_2) == 0) { copy_v2_v2(isectVCosSS[*tot], v1_clipSS); (*tot)++; } + if ((inside_bucket_flag & ISECT_3) == 0) { copy_v2_v2(isectVCosSS[*tot], v2_clipSS); (*tot)++; } } } - if ((inside_bucket_flag & (ISECT_3|ISECT_1)) != (ISECT_3|ISECT_1)) { + if ((inside_bucket_flag & (ISECT_3 | ISECT_1)) != (ISECT_3 | ISECT_1)) { if (line_clip_rect2f(bucket_bounds, v3coSS, v1coSS, v1_clipSS, v2_clipSS)) { - if ((inside_bucket_flag & ISECT_3)==0) { copy_v2_v2(isectVCosSS[*tot], v1_clipSS); (*tot)++; } - if ((inside_bucket_flag & ISECT_1)==0) { copy_v2_v2(isectVCosSS[*tot], v2_clipSS); (*tot)++; } + if ((inside_bucket_flag & ISECT_3) == 0) { copy_v2_v2(isectVCosSS[*tot], v1_clipSS); (*tot)++; } + if ((inside_bucket_flag & ISECT_1) == 0) { copy_v2_v2(isectVCosSS[*tot], v2_clipSS); (*tot)++; } } } @@ -2104,7 +2102,7 @@ static void project_bucket_clip_face( /* now we have all points we need, collect their angles and sort them clockwise */ - for (i=0; i<(*tot); i++) { + for (i = 0; i < (*tot); i++) { cent[0] += isectVCosSS[i][0]; cent[1] += isectVCosSS[i][1]; } @@ -2116,8 +2114,8 @@ static void project_bucket_clip_face( /* Collect angles for every point around the center point */ -#if 0 /* uses a few more cycles then the above loop */ - for (i=0; i<(*tot); i++) { +#if 0 /* uses a few more cycles then the above loop */ + for (i = 0; i < (*tot); i++) { isectVCosSS[i][2] = angle_2d_clockwise(up, cent, isectVCosSS[i]); } #endif @@ -2125,18 +2123,18 @@ static void project_bucket_clip_face( v1_clipSS[0] = cent[0]; /* Abuse this var for the loop below */ v1_clipSS[1] = cent[1] + 1.0f; - for (i=0; i<(*tot); i++) { + for (i = 0; i < (*tot); i++) { v2_clipSS[0] = isectVCosSS[i][0] - cent[0]; v2_clipSS[1] = isectVCosSS[i][1] - cent[1]; - isectVCosSS[i][2] = atan2f(v1_clipSS[0]*v2_clipSS[1] - v1_clipSS[1]*v2_clipSS[0], v1_clipSS[0]*v2_clipSS[0]+v1_clipSS[1]*v2_clipSS[1]); + isectVCosSS[i][2] = atan2f(v1_clipSS[0] * v2_clipSS[1] - v1_clipSS[1] * v2_clipSS[0], v1_clipSS[0] * v2_clipSS[0] + v1_clipSS[1] * v2_clipSS[1]); } - if (flip) qsort(isectVCosSS, *tot, sizeof(float)*3, float_z_sort_flip); - else qsort(isectVCosSS, *tot, sizeof(float)*3, float_z_sort); + if (flip) qsort(isectVCosSS, *tot, sizeof(float) * 3, float_z_sort_flip); + else qsort(isectVCosSS, *tot, sizeof(float) * 3, float_z_sort); /* remove doubles */ /* first/last check */ - if (fabsf(isectVCosSS[0][0]-isectVCosSS[(*tot)-1][0]) < PROJ_GEOM_TOLERANCE && fabsf(isectVCosSS[0][1]-isectVCosSS[(*tot)-1][1]) < PROJ_GEOM_TOLERANCE) { + if (fabsf(isectVCosSS[0][0] - isectVCosSS[(*tot) - 1][0]) < PROJ_GEOM_TOLERANCE && fabsf(isectVCosSS[0][1] - isectVCosSS[(*tot) - 1][1]) < PROJ_GEOM_TOLERANCE) { (*tot)--; } @@ -2148,16 +2146,16 @@ static void project_bucket_clip_face( } doubles = TRUE; - while (doubles==TRUE) { + while (doubles == TRUE) { doubles = FALSE; - for (i=1; i<(*tot); i++) { - if (fabsf(isectVCosSS[i-1][0]-isectVCosSS[i][0]) < PROJ_GEOM_TOLERANCE && - fabsf(isectVCosSS[i-1][1]-isectVCosSS[i][1]) < PROJ_GEOM_TOLERANCE) + for (i = 1; i < (*tot); i++) { + if (fabsf(isectVCosSS[i - 1][0] - isectVCosSS[i][0]) < PROJ_GEOM_TOLERANCE && + fabsf(isectVCosSS[i - 1][1] - isectVCosSS[i][1]) < PROJ_GEOM_TOLERANCE) { int j; - for (j=i+1; j<(*tot); j++) { - isectVCosSS[j-1][0] = isectVCosSS[j][0]; - isectVCosSS[j-1][1] = isectVCosSS[j][1]; + for (j = i + 1; j < (*tot); j++) { + isectVCosSS[j - 1][0] = isectVCosSS[j][0]; + isectVCosSS[j - 1][1] = isectVCosSS[j][1]; } doubles = TRUE; /* keep looking for more doubles */ (*tot)--; @@ -2174,13 +2172,13 @@ static void project_bucket_clip_face( if (is_ortho) { - for (i=0; i<(*tot); i++) { + for (i = 0; i < (*tot); i++) { barycentric_weights_v2(v1coSS, v2coSS, v3coSS, isectVCosSS[i], w); interp_v2_v2v2v2(bucket_bounds_uv[i], uv1co, uv2co, uv3co, w); } } else { - for (i=0; i<(*tot); i++) { + for (i = 0; i < (*tot); i++) { barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, isectVCosSS[i], w); interp_v2_v2v2v2(bucket_bounds_uv[i], uv1co, uv2co, uv3co, w); } @@ -2194,14 +2192,14 @@ static void project_bucket_clip_face( /* If there are ever any problems, */ float test_uv[4][2]; int i; - if (is_ortho) rect_to_uvspace_ortho(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, test_uv, flip); - else rect_to_uvspace_persp(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, test_uv, flip); + if (is_ortho) rect_to_uvspace_ortho(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, test_uv, flip); + else rect_to_uvspace_persp(bucket_bounds, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, test_uv, flip); printf("( [(%f,%f), (%f,%f), (%f,%f), (%f,%f)], ", test_uv[0][0], test_uv[0][1], test_uv[1][0], test_uv[1][1], test_uv[2][0], test_uv[2][1], test_uv[3][0], test_uv[3][1]); printf(" [(%f,%f), (%f,%f), (%f,%f)], ", uv1co[0], uv1co[1], uv2co[0], uv2co[1], uv3co[0], uv3co[1]); printf("["); - for (i=0; i < (*tot); i++) { + for (i = 0; i < (*tot); i++) { printf("(%f, %f),", bucket_bounds_uv[i][0], bucket_bounds_uv[i][1]); } printf("]),\\\n"); @@ -2269,11 +2267,11 @@ static void project_bucket_clip_face( static int IsectPoly2Df(const float pt[2], float uv[][2], const int tot) { int i; - if (line_point_side_v2(uv[tot-1], uv[0], pt) < 0.0f) + if (line_point_side_v2(uv[tot - 1], uv[0], pt) < 0.0f) return 0; - for (i=1; i<tot; i++) { - if (line_point_side_v2(uv[i-1], uv[i], pt) < 0.0f) + for (i = 1; i < tot; i++) { + if (line_point_side_v2(uv[i - 1], uv[i], pt) < 0.0f) return 0; } @@ -2283,10 +2281,10 @@ static int IsectPoly2Df(const float pt[2], float uv[][2], const int tot) static int IsectPoly2Df_twoside(const float pt[2], float uv[][2], const int tot) { int i; - int side = (line_point_side_v2(uv[tot-1], uv[0], pt) > 0.0f); + int side = (line_point_side_v2(uv[tot - 1], uv[0], pt) > 0.0f); - for (i=1; i<tot; i++) { - if ((line_point_side_v2(uv[i-1], uv[i], pt) > 0.0f) != side) + for (i = 1; i < tot; i++) { + if ((line_point_side_v2(uv[i - 1], uv[i], pt) > 0.0f) != side) return 0; } @@ -2308,7 +2306,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i /* UV/pixel seeking data */ int x; /* Image X-Pixel */ - int y;/* Image Y-Pixel */ + int y; /* Image Y-Pixel */ float mask; float uv[2]; /* Image floating point UV - same as x, y but from 0.0-1.0 */ @@ -2337,7 +2335,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i int uv_clip_tot; const short is_ortho = ps->is_ortho; const short do_backfacecull = ps->do_backfacecull; - const short do_clip= ps->rv3d ? ps->rv3d->rflag & RV3D_CLIPPING : 0; + const short do_clip = ps->rv3d ? ps->rv3d->rflag & RV3D_CLIPPING : 0; vCo[0] = ps->dm_mvert[mf->v1].co; vCo[1] = ps->dm_mvert[mf->v2].co; @@ -2347,8 +2345,8 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i /* Use tf_uv_pxoffset instead of tf->uv so we can offset the UV half a pixel * this is done so we can avoid offseting all the pixels by 0.5 which causes * problems when wrapping negative coords */ - xhalfpx = (0.5f+ (PROJ_GEOM_TOLERANCE/3.0f) ) / ibuf_xf; - yhalfpx = (0.5f+ (PROJ_GEOM_TOLERANCE/4.0f) ) / ibuf_yf; + xhalfpx = (0.5f + (PROJ_GEOM_TOLERANCE / 3.0f) ) / ibuf_xf; + yhalfpx = (0.5f + (PROJ_GEOM_TOLERANCE / 4.0f) ) / ibuf_yf; /* Note about (PROJ_GEOM_TOLERANCE/x) above... * Needed to add this offset since UV coords are often quads aligned to pixels. @@ -2371,7 +2369,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i tf_uv_pxoffset[2][1] = tf->uv[2][1] - yhalfpx; if (mf->v4) { - vCo[3] = ps->dm_mvert[ mf->v4 ].co; + vCo[3] = ps->dm_mvert[mf->v4].co; tf_uv_pxoffset[3][0] = tf->uv[3][0] - xhalfpx; tf_uv_pxoffset[3][1] = tf->uv[3][1] - yhalfpx; @@ -2382,32 +2380,32 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i } do { - if (side==1) { - i1=0; i2=2; i3=3; + if (side == 1) { + i1 = 0; i2 = 2; i3 = 3; } else { - i1=0; i2=1; i3=2; + i1 = 0; i2 = 1; i3 = 2; } uv1co = tf_uv_pxoffset[i1]; // was tf->uv[i1]; uv2co = tf_uv_pxoffset[i2]; // was tf->uv[i2]; uv3co = tf_uv_pxoffset[i3]; // was tf->uv[i3]; - v1coSS = ps->screenCoords[ (*(&mf->v1 + i1)) ]; - v2coSS = ps->screenCoords[ (*(&mf->v1 + i2)) ]; - v3coSS = ps->screenCoords[ (*(&mf->v1 + i3)) ]; + v1coSS = ps->screenCoords[(*(&mf->v1 + i1))]; + v2coSS = ps->screenCoords[(*(&mf->v1 + i2))]; + v3coSS = ps->screenCoords[(*(&mf->v1 + i3))]; /* This funtion gives is a concave polyline in UV space from the clipped quad and tri*/ project_bucket_clip_face( - is_ortho, bucket_bounds, - v1coSS, v2coSS, v3coSS, - uv1co, uv2co, uv3co, - uv_clip, &uv_clip_tot - ); + is_ortho, bucket_bounds, + v1coSS, v2coSS, v3coSS, + uv1co, uv2co, uv3co, + uv_clip, &uv_clip_tot + ); /* sometimes this happens, better just allow for 8 intersectiosn even though there should be max 6 */ #if 0 - if (uv_clip_tot>6) { + if (uv_clip_tot > 6) { printf("this should never happen! %d\n", uv_clip_tot); } #endif @@ -2438,17 +2436,18 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i /* Note about IsectPoly2Df_twoside, checking the face or uv flipping doesnt work, * could check the poly direction but better to do this */ - if ( (do_backfacecull && IsectPoly2Df(uv, uv_clip, uv_clip_tot)) || - (do_backfacecull==0 && IsectPoly2Df_twoside(uv, uv_clip, uv_clip_tot))) { + if ((do_backfacecull && IsectPoly2Df(uv, uv_clip, uv_clip_tot)) || + (do_backfacecull == 0 && IsectPoly2Df_twoside(uv, uv_clip, uv_clip_tot))) + { has_x_isect = has_isect = 1; - if (is_ortho) screen_px_from_ortho(uv, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, pixelScreenCo, w); - else screen_px_from_persp(uv, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, pixelScreenCo, w); + if (is_ortho) screen_px_from_ortho(uv, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, pixelScreenCo, w); + else screen_px_from_persp(uv, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, pixelScreenCo, w); /* a pity we need to get the worldspace pixel location here */ if (do_clip) { - interp_v3_v3v3v3(wco, ps->dm_mvert[ (*(&mf->v1 + i1)) ].co, ps->dm_mvert[ (*(&mf->v1 + i2)) ].co, ps->dm_mvert[ (*(&mf->v1 + i3)) ].co, w); + interp_v3_v3v3v3(wco, ps->dm_mvert[(*(&mf->v1 + i1))].co, ps->dm_mvert[(*(&mf->v1 + i2))].co, ps->dm_mvert[(*(&mf->v1 + i3))].co, w); if (ED_view3d_clipping_test(ps->rv3d, wco, TRUE)) { continue; /* Watch out that no code below this needs to run */ } @@ -2457,16 +2456,16 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i /* Is this UV visible from the view? - raytrace */ /* project_paint_PickFace is less complex, use for testing */ //if (project_paint_PickFace(ps, pixelScreenCo, w, &side) == face_index) { - if (ps->do_occlude==0 || !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo)) { + if (ps->do_occlude == 0 || !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo)) { mask = project_paint_uvpixel_mask(ps, face_index, side, w); if (mask > 0.0f) { BLI_linklist_prepend_arena( - bucketPixelNodes, - project_paint_uvpixel_init(ps, arena, ibuf, x, y, mask, face_index, image_index, pixelScreenCo, side, w), - arena - ); + bucketPixelNodes, + project_paint_uvpixel_init(ps, arena, ibuf, x, y, mask, face_index, image_index, pixelScreenCo, side, w), + arena + ); } } @@ -2480,9 +2479,9 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i } -#if 0 /* TODO - investigate why this dosnt work sometimes! it should! */ +#if 0 /* TODO - investigate why this dosnt work sometimes! it should! */ /* no intersection for this entire row, after some intersection above means we can quit now */ - if (has_x_isect==0 && has_isect) { + if (has_x_isect == 0 && has_isect) { break; } #endif @@ -2497,25 +2496,25 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i int face_seam_flag; if (ps->thread_tot > 1) - BLI_lock_thread(LOCK_CUSTOM1); /* Other threads could be modifying these vars */ + BLI_lock_thread(LOCK_CUSTOM1); /* Other threads could be modifying these vars */ face_seam_flag = ps->faceSeamFlags[face_index]; /* are any of our edges un-initialized? */ - if ((face_seam_flag & (PROJ_FACE_SEAM1|PROJ_FACE_NOSEAM1))==0 || - (face_seam_flag & (PROJ_FACE_SEAM2|PROJ_FACE_NOSEAM2))==0 || - (face_seam_flag & (PROJ_FACE_SEAM3|PROJ_FACE_NOSEAM3))==0 || - (face_seam_flag & (PROJ_FACE_SEAM4|PROJ_FACE_NOSEAM4))==0 - ) { + if ((face_seam_flag & (PROJ_FACE_SEAM1 | PROJ_FACE_NOSEAM1)) == 0 || + (face_seam_flag & (PROJ_FACE_SEAM2 | PROJ_FACE_NOSEAM2)) == 0 || + (face_seam_flag & (PROJ_FACE_SEAM3 | PROJ_FACE_NOSEAM3)) == 0 || + (face_seam_flag & (PROJ_FACE_SEAM4 | PROJ_FACE_NOSEAM4)) == 0) + { project_face_seams_init(ps, face_index, mf->v4); face_seam_flag = ps->faceSeamFlags[face_index]; //printf("seams - %d %d %d %d\n", flag&PROJ_FACE_SEAM1, flag&PROJ_FACE_SEAM2, flag&PROJ_FACE_SEAM3, flag&PROJ_FACE_SEAM4); } - if ((face_seam_flag & (PROJ_FACE_SEAM1|PROJ_FACE_SEAM2|PROJ_FACE_SEAM3|PROJ_FACE_SEAM4))==0) { + if ((face_seam_flag & (PROJ_FACE_SEAM1 | PROJ_FACE_SEAM2 | PROJ_FACE_SEAM3 | PROJ_FACE_SEAM4)) == 0) { if (ps->thread_tot > 1) - BLI_unlock_thread(LOCK_CUSTOM1); /* Other threads could be modifying these vars */ + BLI_unlock_thread(LOCK_CUSTOM1); /* Other threads could be modifying these vars */ } else { @@ -2536,45 +2535,45 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i float fac1, fac2, ftot; - if (outset_uv[0][0]==FLT_MAX) /* first time initialize */ + if (outset_uv[0][0] == FLT_MAX) /* first time initialize */ uv_image_outset(tf_uv_pxoffset, outset_uv, ps->seam_bleed_px, ibuf->x, ibuf->y, mf->v4); /* ps->faceSeamUVs cant be modified when threading, now this is done we can unlock */ if (ps->thread_tot > 1) - BLI_unlock_thread(LOCK_CUSTOM1); /* Other threads could be modifying these vars */ + BLI_unlock_thread(LOCK_CUSTOM1); /* Other threads could be modifying these vars */ vCoSS[0] = ps->screenCoords[mf->v1]; vCoSS[1] = ps->screenCoords[mf->v2]; vCoSS[2] = ps->screenCoords[mf->v3]; if (mf->v4) - vCoSS[3] = ps->screenCoords[ mf->v4 ]; + vCoSS[3] = ps->screenCoords[mf->v4]; /* PROJ_FACE_SCALE_SEAM must be slightly less then 1.0f */ if (is_ortho) { - if (mf->v4) scale_quad(insetCos, vCoSS, PROJ_FACE_SCALE_SEAM); - else scale_tri(insetCos, vCoSS, PROJ_FACE_SCALE_SEAM); + if (mf->v4) scale_quad(insetCos, vCoSS, PROJ_FACE_SCALE_SEAM); + else scale_tri(insetCos, vCoSS, PROJ_FACE_SCALE_SEAM); } else { - if (mf->v4) scale_quad(insetCos, vCo, PROJ_FACE_SCALE_SEAM); - else scale_tri(insetCos, vCo, PROJ_FACE_SCALE_SEAM); + if (mf->v4) scale_quad(insetCos, vCo, PROJ_FACE_SCALE_SEAM); + else scale_tri(insetCos, vCo, PROJ_FACE_SCALE_SEAM); } side = 0; /* for triangles this wont need to change */ for (fidx1 = 0; fidx1 < (mf->v4 ? 4 : 3); fidx1++) { - if (mf->v4) fidx2 = (fidx1==3) ? 0 : fidx1+1; /* next fidx in the face (0,1,2,3) -> (1,2,3,0) */ - else fidx2 = (fidx1==2) ? 0 : fidx1+1; /* next fidx in the face (0,1,2) -> (1,2,0) */ + if (mf->v4) fidx2 = (fidx1 == 3) ? 0 : fidx1 + 1; /* next fidx in the face (0,1,2,3) -> (1,2,3,0) */ + else fidx2 = (fidx1 == 2) ? 0 : fidx1 + 1; /* next fidx in the face (0,1,2) -> (1,2,0) */ - if ( (face_seam_flag & (1<<fidx1)) && /* 1<<fidx1 -> PROJ_FACE_SEAM# */ - line_clip_rect2f(bucket_bounds, vCoSS[fidx1], vCoSS[fidx2], bucket_clip_edges[0], bucket_clip_edges[1]) - ) { + if ((face_seam_flag & (1 << fidx1)) && /* 1<<fidx1 -> PROJ_FACE_SEAM# */ + line_clip_rect2f(bucket_bounds, vCoSS[fidx1], vCoSS[fidx2], bucket_clip_edges[0], bucket_clip_edges[1])) + { ftot = len_v2v2(vCoSS[fidx1], vCoSS[fidx2]); /* screenspace edge length */ if (ftot > 0.0f) { /* avoid div by zero */ if (mf->v4) { - if (fidx1==2 || fidx2==2) side= 1; - else side= 0; + if (fidx1 == 2 || fidx2 == 2) side = 1; + else side = 0; } fac1 = len_v2v2(vCoSS[fidx1], bucket_clip_edges[0]) / ftot; @@ -2613,36 +2612,36 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i * is not relevant, since we are outside the face, Use VecLerpf to find * our location on the side of the face's UV */ #if 0 - if (is_ortho) screen_px_from_ortho(ps, uv, v1co, v2co, v3co, uv1co, uv2co, uv3co, pixelScreenCo); - else screen_px_from_persp(ps, uv, v1co, v2co, v3co, uv1co, uv2co, uv3co, pixelScreenCo); + if (is_ortho) screen_px_from_ortho(ps, uv, v1co, v2co, v3co, uv1co, uv2co, uv3co, pixelScreenCo); + else screen_px_from_persp(ps, uv, v1co, v2co, v3co, uv1co, uv2co, uv3co, pixelScreenCo); #endif /* Since this is a seam we need to work out where on the line this pixel is */ //fac = line_point_factor_v2(uv, uv_seam_quad[0], uv_seam_quad[1]); fac = line_point_factor_v2(uv, seam_subsection[0], seam_subsection[1]); - if (fac < 0.0f) { copy_v3_v3(pixelScreenCo, edge_verts_inset_clip[0]); } - else if (fac > 1.0f) { copy_v3_v3(pixelScreenCo, edge_verts_inset_clip[1]); } - else { interp_v3_v3v3(pixelScreenCo, edge_verts_inset_clip[0], edge_verts_inset_clip[1], fac); } + if (fac < 0.0f) { copy_v3_v3(pixelScreenCo, edge_verts_inset_clip[0]); } + else if (fac > 1.0f) { copy_v3_v3(pixelScreenCo, edge_verts_inset_clip[1]); } + else { interp_v3_v3v3(pixelScreenCo, edge_verts_inset_clip[0], edge_verts_inset_clip[1], fac); } if (!is_ortho) { pixelScreenCo[3] = 1.0f; mul_m4_v4((float(*)[4])ps->projectMat, pixelScreenCo); /* cast because of const */ - pixelScreenCo[0] = (float)(ps->winx/2.0f)+(ps->winx/2.0f)*pixelScreenCo[0]/pixelScreenCo[3]; - pixelScreenCo[1] = (float)(ps->winy/2.0f)+(ps->winy/2.0f)*pixelScreenCo[1]/pixelScreenCo[3]; - pixelScreenCo[2] = pixelScreenCo[2]/pixelScreenCo[3]; /* Use the depth for bucket point occlusion */ + pixelScreenCo[0] = (float)(ps->winx / 2.0f) + (ps->winx / 2.0f) * pixelScreenCo[0] / pixelScreenCo[3]; + pixelScreenCo[1] = (float)(ps->winy / 2.0f) + (ps->winy / 2.0f) * pixelScreenCo[1] / pixelScreenCo[3]; + pixelScreenCo[2] = pixelScreenCo[2] / pixelScreenCo[3]; /* Use the depth for bucket point occlusion */ } - if (ps->do_occlude==0 || !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo)) { + if (ps->do_occlude == 0 || !project_bucket_point_occluded(ps, bucketFaceNodes, face_index, pixelScreenCo)) { /* Only bother calculating the weights if we intersect */ if (ps->do_mask_normal || ps->dm_mtface_clone) { #if 1 /* get the UV on the line since we want to copy the pixels from there for bleeding */ float uv_close[2]; - float fac= closest_to_line_v2(uv_close, uv, tf_uv_pxoffset[fidx1], tf_uv_pxoffset[fidx2]); - if (fac < 0.0f) copy_v2_v2(uv_close, tf_uv_pxoffset[fidx1]); - else if (fac > 1.0f) copy_v2_v2(uv_close, tf_uv_pxoffset[fidx2]); + float fac = closest_to_line_v2(uv_close, uv, tf_uv_pxoffset[fidx1], tf_uv_pxoffset[fidx2]); + if (fac < 0.0f) copy_v2_v2(uv_close, tf_uv_pxoffset[fidx1]); + else if (fac > 1.0f) copy_v2_v2(uv_close, tf_uv_pxoffset[fidx2]); if (side) { barycentric_weights_v2(tf_uv_pxoffset[0], tf_uv_pxoffset[2], tf_uv_pxoffset[3], uv_close, w); @@ -2653,15 +2652,15 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i #else /* this is buggy with quads, don't use for now */ /* Cheat, we know where we are along the edge so work out the weights from that */ - fac = fac1 + (fac * (fac2-fac1)); + fac = fac1 + (fac * (fac2 - fac1)); - w[0]=w[1]=w[2]= 0.0; + w[0] = w[1] = w[2] = 0.0; if (side) { - w[fidx1?fidx1-1:0] = 1.0f-fac; - w[fidx2?fidx2-1:0] = fac; + w[fidx1 ? fidx1 - 1 : 0] = 1.0f - fac; + w[fidx2 ? fidx2 - 1 : 0] = fac; } else { - w[fidx1] = 1.0f-fac; + w[fidx1] = 1.0f - fac; w[fidx2] = fac; } #endif @@ -2669,8 +2668,8 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i /* a pity we need to get the worldspace pixel location here */ if (do_clip) { - if (side) interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v3].co, ps->dm_mvert[mf->v4].co, w); - else interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v2].co, ps->dm_mvert[mf->v3].co, w); + if (side) interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v3].co, ps->dm_mvert[mf->v4].co, w); + else interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v2].co, ps->dm_mvert[mf->v3].co, w); if (ED_view3d_clipping_test(ps->rv3d, wco, TRUE)) { continue; /* Watch out that no code below this needs to run */ @@ -2681,10 +2680,10 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i if (mask > 0.0f) { BLI_linklist_prepend_arena( - bucketPixelNodes, - project_paint_uvpixel_init(ps, arena, ibuf, x, y, mask, face_index, image_index, pixelScreenCo, side, w), - arena - ); + bucketPixelNodes, + project_paint_uvpixel_init(ps, arena, ibuf, x, y, mask, face_index, image_index, pixelScreenCo, side, w), + arena + ); } } @@ -2695,9 +2694,9 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i } } -#if 0 /* TODO - investigate why this dosnt work sometimes! it should! */ +#if 0 /* TODO - investigate why this dosnt work sometimes! it should! */ /* no intersection for this entire row, after some intersection above means we can quit now */ - if (has_x_isect==0 && has_isect) { + if (has_x_isect == 0 && has_isect) { break; } #endif @@ -2734,11 +2733,11 @@ static void project_paint_bucket_bounds(const ProjPaintState *ps, const float mi /* set bucket_bounds to a screen space-aligned floating point bound-box */ static void project_bucket_bounds(const ProjPaintState *ps, const int bucket_x, const int bucket_y, rctf *bucket_bounds) { - bucket_bounds->xmin = ps->screenMin[0]+((bucket_x)*(ps->screen_width / ps->buckets_x)); /* left */ - bucket_bounds->xmax = ps->screenMin[0]+((bucket_x+1)*(ps->screen_width / ps->buckets_x)); /* right */ + bucket_bounds->xmin = ps->screenMin[0] + ((bucket_x) * (ps->screen_width / ps->buckets_x)); /* left */ + bucket_bounds->xmax = ps->screenMin[0] + ((bucket_x + 1) * (ps->screen_width / ps->buckets_x)); /* right */ - bucket_bounds->ymin = ps->screenMin[1]+((bucket_y)*(ps->screen_height / ps->buckets_y)); /* bottom */ - bucket_bounds->ymax = ps->screenMin[1]+((bucket_y+1)*(ps->screen_height / ps->buckets_y)); /* top */ + bucket_bounds->ymin = ps->screenMin[1] + ((bucket_y) * (ps->screen_height / ps->buckets_y)); /* bottom */ + bucket_bounds->ymax = ps->screenMin[1] + ((bucket_y + 1) * (ps->screen_height / ps->buckets_y)); /* top */ } /* Fill this bucket with pixels from the faces that intersect it. @@ -2747,24 +2746,24 @@ static void project_bucket_bounds(const ProjPaintState *ps, const int bucket_x, static void project_bucket_init(const ProjPaintState *ps, const int thread_index, const int bucket_index, rctf *bucket_bounds) { LinkNode *node; - int face_index, image_index=0; + int face_index, image_index = 0; ImBuf *ibuf = NULL; Image *tpage_last = NULL, *tpage; Image *ima = NULL; - if (ps->image_tot==1) { + if (ps->image_tot == 1) { /* Simple loop, no context switching */ ibuf = ps->projImages[0].ibuf; ima = ps->projImages[0].ima; - for (node = ps->bucketFaces[bucket_index]; node; node= node->next) { + for (node = ps->bucketFaces[bucket_index]; node; node = node->next) { project_paint_face_init(ps, thread_index, bucket_index, GET_INT_FROM_POINTER(node->link), 0, bucket_bounds, ibuf, ima->tpageflag & IMA_CLAMP_U, ima->tpageflag & IMA_CLAMP_V); } } else { /* More complicated loop, switch between images */ - for (node = ps->bucketFaces[bucket_index]; node; node= node->next) { + for (node = ps->bucketFaces[bucket_index]; node; node = node->next) { face_index = GET_INT_FROM_POINTER(node->link); /* Image context switching */ @@ -2772,7 +2771,7 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index if (tpage_last != tpage) { tpage_last = tpage; - for (image_index=0; image_index < ps->image_tot; image_index++) { + for (image_index = 0; image_index < ps->image_tot; image_index++) { if (ps->projImages[image_index].ima == tpage_last) { ibuf = ps->projImages[image_index].ibuf; ima = ps->projImages[image_index].ima; @@ -2801,16 +2800,16 @@ static int project_bucket_face_isect(ProjPaintState *ps, int bucket_x, int bucke /* TODO - replace this with a tricker method that uses sideofline for all screenCoords's edges against the closest bucket corner */ rctf bucket_bounds; float p1[2], p2[2], p3[2], p4[2]; - float *v, *v1,*v2,*v3,*v4=NULL; + float *v, *v1, *v2, *v3, *v4 = NULL; int fidx; project_bucket_bounds(ps, bucket_x, bucket_y, &bucket_bounds); /* Is one of the faces verts in the bucket bounds? */ - fidx = mf->v4 ? 3:2; + fidx = mf->v4 ? 3 : 2; do { - v = ps->screenCoords[ (*(&mf->v1 + fidx)) ]; + v = ps->screenCoords[(*(&mf->v1 + fidx))]; if (BLI_in_rctf(&bucket_bounds, v[0], v[1])) { return 1; } @@ -2824,36 +2823,36 @@ static int project_bucket_face_isect(ProjPaintState *ps, int bucket_x, int bucke } p1[0] = bucket_bounds.xmin; p1[1] = bucket_bounds.ymin; - p2[0] = bucket_bounds.xmin; p2[1] = bucket_bounds.ymax; - p3[0] = bucket_bounds.xmax; p3[1] = bucket_bounds.ymax; - p4[0] = bucket_bounds.xmax; p4[1] = bucket_bounds.ymin; + p2[0] = bucket_bounds.xmin; p2[1] = bucket_bounds.ymax; + p3[0] = bucket_bounds.xmax; p3[1] = bucket_bounds.ymax; + p4[0] = bucket_bounds.xmax; p4[1] = bucket_bounds.ymin; if (mf->v4) { - if ( isect_point_quad_v2(p1, v1, v2, v3, v4) || - isect_point_quad_v2(p2, v1, v2, v3, v4) || - isect_point_quad_v2(p3, v1, v2, v3, v4) || - isect_point_quad_v2(p4, v1, v2, v3, v4) || - - /* we can avoid testing v3,v1 because another intersection MUST exist if this intersects */ - (isect_line_line_v2(p1, p2, v1, v2) || isect_line_line_v2(p1, p2, v2, v3) || isect_line_line_v2(p1, p2, v3, v4)) || - (isect_line_line_v2(p2, p3, v1, v2) || isect_line_line_v2(p2, p3, v2, v3) || isect_line_line_v2(p2, p3, v3, v4)) || - (isect_line_line_v2(p3, p4, v1, v2) || isect_line_line_v2(p3, p4, v2, v3) || isect_line_line_v2(p3, p4, v3, v4)) || - (isect_line_line_v2(p4, p1, v1, v2) || isect_line_line_v2(p4, p1, v2, v3) || isect_line_line_v2(p4, p1, v3, v4)) - ) { + if (isect_point_quad_v2(p1, v1, v2, v3, v4) || + isect_point_quad_v2(p2, v1, v2, v3, v4) || + isect_point_quad_v2(p3, v1, v2, v3, v4) || + isect_point_quad_v2(p4, v1, v2, v3, v4) || + + /* we can avoid testing v3,v1 because another intersection MUST exist if this intersects */ + (isect_line_line_v2(p1, p2, v1, v2) || isect_line_line_v2(p1, p2, v2, v3) || isect_line_line_v2(p1, p2, v3, v4)) || + (isect_line_line_v2(p2, p3, v1, v2) || isect_line_line_v2(p2, p3, v2, v3) || isect_line_line_v2(p2, p3, v3, v4)) || + (isect_line_line_v2(p3, p4, v1, v2) || isect_line_line_v2(p3, p4, v2, v3) || isect_line_line_v2(p3, p4, v3, v4)) || + (isect_line_line_v2(p4, p1, v1, v2) || isect_line_line_v2(p4, p1, v2, v3) || isect_line_line_v2(p4, p1, v3, v4))) + { return 1; } } else { - if ( isect_point_tri_v2(p1, v1, v2, v3) || - isect_point_tri_v2(p2, v1, v2, v3) || - isect_point_tri_v2(p3, v1, v2, v3) || - isect_point_tri_v2(p4, v1, v2, v3) || - /* we can avoid testing v3,v1 because another intersection MUST exist if this intersects */ - (isect_line_line_v2(p1, p2, v1, v2) || isect_line_line_v2(p1, p2, v2, v3)) || - (isect_line_line_v2(p2, p3, v1, v2) || isect_line_line_v2(p2, p3, v2, v3)) || - (isect_line_line_v2(p3, p4, v1, v2) || isect_line_line_v2(p3, p4, v2, v3)) || - (isect_line_line_v2(p4, p1, v1, v2) || isect_line_line_v2(p4, p1, v2, v3)) - ) { + if (isect_point_tri_v2(p1, v1, v2, v3) || + isect_point_tri_v2(p2, v1, v2, v3) || + isect_point_tri_v2(p3, v1, v2, v3) || + isect_point_tri_v2(p4, v1, v2, v3) || + /* we can avoid testing v3,v1 because another intersection MUST exist if this intersects */ + (isect_line_line_v2(p1, p2, v1, v2) || isect_line_line_v2(p1, p2, v2, v3)) || + (isect_line_line_v2(p2, p3, v1, v2) || isect_line_line_v2(p2, p3, v2, v3)) || + (isect_line_line_v2(p3, p4, v1, v2) || isect_line_line_v2(p3, p4, v2, v3)) || + (isect_line_line_v2(p4, p1, v1, v2) || isect_line_line_v2(p4, p1, v2, v3))) + { return 1; } } @@ -2873,9 +2872,9 @@ static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf, INIT_MINMAX2(min, max); - fidx = mf->v4 ? 3:2; + fidx = mf->v4 ? 3 : 2; do { - vCoSS = ps->screenCoords[ *(&mf->v1 + fidx) ]; + vCoSS = ps->screenCoords[*(&mf->v1 + fidx)]; DO_MINMAX2(vCoSS, min, max); } while (fidx--); @@ -2885,12 +2884,12 @@ static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf, has_x_isect = 0; for (bucket_x = bucketMin[0]; bucket_x < bucketMax[0]; bucket_x++) { if (project_bucket_face_isect(ps, bucket_x, bucket_y, mf)) { - int bucket_index= bucket_x + (bucket_y * ps->buckets_x); + int bucket_index = bucket_x + (bucket_y * ps->buckets_x); BLI_linklist_prepend_arena( - &ps->bucketFaces[ bucket_index ], - SET_INT_IN_POINTER(face_index), /* cast to a pointer to shut up the compiler */ - arena - ); + &ps->bucketFaces[bucket_index], + SET_INT_IN_POINTER(face_index), /* cast to a pointer to shut up the compiler */ + arena + ); has_x_isect = has_isect = 1; } @@ -2901,7 +2900,7 @@ static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf, } /* no intersection for this entire row, after some intersection above means we can quit now */ - if (has_x_isect==0 && has_isect) { + if (has_x_isect == 0 && has_isect) { break; } } @@ -2918,7 +2917,7 @@ static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf, static int project_paint_view_clip(View3D *v3d, RegionView3D *rv3d, float *clipsta, float *clipend) { - int orth= ED_view3d_clip_range_get(v3d, rv3d, clipsta, clipend); + int orth = ED_view3d_clip_range_get(v3d, rv3d, clipsta, clipend); if (orth) { /* only needed for ortho */ float fac = 2.0f / ((*clipend) - (*clipsta)); @@ -2957,31 +2956,31 @@ static void project_paint_begin(ProjPaintState *ps) MemArena *arena; /* at the moment this is just ps->arena_mt[0], but use this to show were not multithreading */ - const int diameter= 2*brush_size(ps->scene, ps->brush); + const int diameter = 2 * brush_size(ps->scene, ps->brush); /* ---- end defines ---- */ - if (ps->source==PROJ_SRC_VIEW) - ED_view3d_clipping_local(ps->rv3d, ps->ob->obmat); /* faster clipping lookups */ + if (ps->source == PROJ_SRC_VIEW) + ED_view3d_clipping_local(ps->rv3d, ps->ob->obmat); /* faster clipping lookups */ /* paint onto the derived mesh */ /* Workaround for subsurf selection, try the display mesh first */ - if (ps->source==PROJ_SRC_IMAGE_CAM) { + if (ps->source == PROJ_SRC_IMAGE_CAM) { /* using render mesh, assume only camera was rendered from */ ps->dm = mesh_create_derived_render(ps->scene, ps->ob, ps->scene->customdata_mask | CD_MASK_MTFACE); - ps->dm_release= TRUE; + ps->dm_release = TRUE; } - else if (ps->ob->derivedFinal && CustomData_has_layer( &ps->ob->derivedFinal->faceData, CD_MTFACE)) { + else if (ps->ob->derivedFinal && CustomData_has_layer(&ps->ob->derivedFinal->faceData, CD_MTFACE)) { ps->dm = ps->ob->derivedFinal; - ps->dm_release= FALSE; + ps->dm_release = FALSE; } else { ps->dm = mesh_get_derived_final(ps->scene, ps->ob, ps->scene->customdata_mask | CD_MASK_MTFACE); - ps->dm_release= TRUE; + ps->dm_release = TRUE; } - if ( !CustomData_has_layer( &ps->dm->faceData, CD_MTFACE) ) { + if (!CustomData_has_layer(&ps->dm->faceData, CD_MTFACE) ) { if (ps->dm_release) ps->dm->release(ps->dm); @@ -2992,7 +2991,7 @@ static void project_paint_begin(ProjPaintState *ps) ps->dm_mvert = ps->dm->getVertArray(ps->dm); ps->dm_mface = ps->dm->getTessFaceArray(ps->dm); - ps->dm_mtface= ps->dm->getTessFaceDataArray(ps->dm, CD_MTFACE); + ps->dm_mtface = ps->dm->getTessFaceDataArray(ps->dm, CD_MTFACE); ps->dm_totvert = ps->dm->getNumVerts(ps->dm); ps->dm_totface = ps->dm->getNumTessFaces(ps->dm); @@ -3001,16 +3000,16 @@ static void project_paint_begin(ProjPaintState *ps) /* Note, use the original mesh for getting the clone and mask layer index - * this avoids re-generating the derived mesh just to get the new index */ + * this avoids re-generating the derived mesh just to get the new index */ if (ps->do_layer_clone) { //int layer_num = CustomData_get_clone_layer(&ps->dm->faceData, CD_MTFACE); int layer_num = CustomData_get_clone_layer(&((Mesh *)ps->ob->data)->fdata, CD_MTFACE); if (layer_num != -1) ps->dm_mtface_clone = CustomData_get_layer_n(&ps->dm->faceData, CD_MTFACE, layer_num); - if (ps->dm_mtface_clone==NULL || ps->dm_mtface_clone==ps->dm_mtface) { + if (ps->dm_mtface_clone == NULL || ps->dm_mtface_clone == ps->dm_mtface) { ps->do_layer_clone = 0; - ps->dm_mtface_clone= NULL; + ps->dm_mtface_clone = NULL; printf("ACK!\n"); } } @@ -3021,7 +3020,7 @@ static void project_paint_begin(ProjPaintState *ps) if (layer_num != -1) ps->dm_mtface_stencil = CustomData_get_layer_n(&ps->dm->faceData, CD_MTFACE, layer_num); - if (ps->dm_mtface_stencil==NULL || ps->dm_mtface_stencil==ps->dm_mtface) { + if (ps->dm_mtface_stencil == NULL || ps->dm_mtface_stencil == ps->dm_mtface) { ps->do_layer_stencil = 0; ps->dm_mtface_stencil = NULL; } @@ -3029,13 +3028,13 @@ static void project_paint_begin(ProjPaintState *ps) /* when using subsurf or multires, mface arrays are thrown away, we need to keep a copy */ if (ps->dm->type != DM_TYPE_CDDM) { - ps->dm_mvert= MEM_dupallocN(ps->dm_mvert); - ps->dm_mface= MEM_dupallocN(ps->dm_mface); + ps->dm_mvert = MEM_dupallocN(ps->dm_mvert); + ps->dm_mface = MEM_dupallocN(ps->dm_mface); /* looks like these are ok for now.*/ #if 0 - ps->dm_mtface= MEM_dupallocN(ps->dm_mtface); - ps->dm_mtface_clone= MEM_dupallocN(ps->dm_mtface_clone); - ps->dm_mtface_stencil= MEM_dupallocN(ps->dm_mtface_stencil); + ps->dm_mtface = MEM_dupallocN(ps->dm_mtface); + ps->dm_mtface_clone = MEM_dupallocN(ps->dm_mtface_clone); + ps->dm_mtface_stencil = MEM_dupallocN(ps->dm_mtface_stencil); #endif } @@ -3049,44 +3048,44 @@ static void project_paint_begin(ProjPaintState *ps) invert_m4_m4(ps->ob->imat, ps->ob->obmat); - if (ps->source==PROJ_SRC_VIEW) { + if (ps->source == PROJ_SRC_VIEW) { /* normal drawing */ - ps->winx= ps->ar->winx; - ps->winy= ps->ar->winy; + ps->winx = ps->ar->winx; + ps->winy = ps->ar->winy; copy_m4_m4(viewmat, ps->rv3d->viewmat); copy_m4_m4(viewinv, ps->rv3d->viewinv); ED_view3d_ob_project_mat_get(ps->rv3d, ps->ob, ps->projectMat); - ps->is_ortho= project_paint_view_clip(ps->v3d, ps->rv3d, &ps->clipsta, &ps->clipend); + ps->is_ortho = project_paint_view_clip(ps->v3d, ps->rv3d, &ps->clipsta, &ps->clipend); } else { /* re-projection */ float winmat[4][4]; float vmat[4][4]; - ps->winx= ps->reproject_ibuf->x; - ps->winy= ps->reproject_ibuf->y; + ps->winx = ps->reproject_ibuf->x; + ps->winy = ps->reproject_ibuf->y; - if (ps->source==PROJ_SRC_IMAGE_VIEW) { + if (ps->source == PROJ_SRC_IMAGE_VIEW) { /* image stores camera data, tricky */ - IDProperty *idgroup= IDP_GetProperties(&ps->reproject_image->id, 0); - IDProperty *view_data= IDP_GetPropertyFromGroup(idgroup, PROJ_VIEW_DATA_ID); + IDProperty *idgroup = IDP_GetProperties(&ps->reproject_image->id, 0); + IDProperty *view_data = IDP_GetPropertyFromGroup(idgroup, PROJ_VIEW_DATA_ID); - float *array= (float *)IDP_Array(view_data); + float *array = (float *)IDP_Array(view_data); /* use image array, written when creating image */ - memcpy(winmat, array, sizeof(winmat)); array += sizeof(winmat)/sizeof(float); - memcpy(viewmat, array, sizeof(viewmat)); array += sizeof(viewmat)/sizeof(float); - ps->clipsta= array[0]; - ps->clipend= array[1]; - ps->is_ortho= array[2] ? 1:0; + memcpy(winmat, array, sizeof(winmat)); array += sizeof(winmat) / sizeof(float); + memcpy(viewmat, array, sizeof(viewmat)); array += sizeof(viewmat) / sizeof(float); + ps->clipsta = array[0]; + ps->clipend = array[1]; + ps->is_ortho = array[2] ? 1 : 0; invert_m4_m4(viewinv, viewmat); } - else if (ps->source==PROJ_SRC_IMAGE_CAM) { - Object *cam_ob= ps->scene->camera; + else if (ps->source == PROJ_SRC_IMAGE_CAM) { + Object *cam_ob = ps->scene->camera; CameraParams params; /* viewmat & viewinv */ @@ -3101,9 +3100,9 @@ static void project_paint_begin(ProjPaintState *ps) camera_params_compute_matrix(¶ms); copy_m4_m4(winmat, params.winmat); - ps->clipsta= params.clipsta; - ps->clipend= params.clipend; - ps->is_ortho= params.is_ortho; + ps->clipsta = params.clipsta; + ps->clipend = params.clipend; + ps->is_ortho = params.is_ortho; } /* same as view3d_get_object_project_mat */ @@ -3132,20 +3131,20 @@ static void project_paint_begin(ProjPaintState *ps) INIT_MINMAX2(ps->screenMin, ps->screenMax); ps->screenCoords = MEM_mallocN(sizeof(float) * ps->dm_totvert * 4, "ProjectPaint ScreenVerts"); - projScreenCo= *ps->screenCoords; + projScreenCo = *ps->screenCoords; if (ps->is_ortho) { - for (a=0, mv=ps->dm_mvert; a < ps->dm_totvert; a++, mv++, projScreenCo+=4) { + for (a = 0, mv = ps->dm_mvert; a < ps->dm_totvert; a++, mv++, projScreenCo += 4) { mul_v3_m4v3(projScreenCo, ps->projectMat, mv->co); /* screen space, not clamped */ - projScreenCo[0] = (float)(ps->winx/2.0f)+(ps->winx/2.0f)*projScreenCo[0]; - projScreenCo[1] = (float)(ps->winy/2.0f)+(ps->winy/2.0f)*projScreenCo[1]; + projScreenCo[0] = (float)(ps->winx / 2.0f) + (ps->winx / 2.0f) * projScreenCo[0]; + projScreenCo[1] = (float)(ps->winy / 2.0f) + (ps->winy / 2.0f) * projScreenCo[1]; DO_MINMAX2(projScreenCo, ps->screenMin, ps->screenMax); } } else { - for (a=0, mv=ps->dm_mvert; a < ps->dm_totvert; a++, mv++, projScreenCo+=4) { + for (a = 0, mv = ps->dm_mvert; a < ps->dm_totvert; a++, mv++, projScreenCo += 4) { copy_v3_v3(projScreenCo, mv->co); projScreenCo[3] = 1.0f; @@ -3153,9 +3152,9 @@ static void project_paint_begin(ProjPaintState *ps) if (projScreenCo[3] > ps->clipsta) { /* screen space, not clamped */ - projScreenCo[0] = (float)(ps->winx/2.0f)+(ps->winx/2.0f)*projScreenCo[0]/projScreenCo[3]; - projScreenCo[1] = (float)(ps->winy/2.0f)+(ps->winy/2.0f)*projScreenCo[1]/projScreenCo[3]; - projScreenCo[2] = projScreenCo[2]/projScreenCo[3]; /* Use the depth for bucket point occlusion */ + projScreenCo[0] = (float)(ps->winx / 2.0f) + (ps->winx / 2.0f) * projScreenCo[0] / projScreenCo[3]; + projScreenCo[1] = (float)(ps->winy / 2.0f) + (ps->winy / 2.0f) * projScreenCo[1] / projScreenCo[3]; + projScreenCo[2] = projScreenCo[2] / projScreenCo[3]; /* Use the depth for bucket point occlusion */ DO_MINMAX2(projScreenCo, ps->screenMin, ps->screenMax); } else { @@ -3178,7 +3177,7 @@ static void project_paint_begin(ProjPaintState *ps) ps->screenMax[1] += projMargin; ps->screenMin[1] -= projMargin; - if (ps->source==PROJ_SRC_VIEW) { + if (ps->source == PROJ_SRC_VIEW) { #ifdef PROJ_DEBUG_WINCLIP CLAMP(ps->screenMin[0], (float)(-diameter), (float)(ps->winx + diameter)); CLAMP(ps->screenMax[0], (float)(-diameter), (float)(ps->winx + diameter)); @@ -3188,11 +3187,11 @@ static void project_paint_begin(ProjPaintState *ps) #endif } else { /* re-projection, use bounds */ - ps->screenMin[0]= 0; - ps->screenMax[0]= (float)(ps->winx); + ps->screenMin[0] = 0; + ps->screenMax[0] = (float)(ps->winx); - ps->screenMin[1]= 0; - ps->screenMax[1]= (float)(ps->winy); + ps->screenMin[1] = 0; + ps->screenMax[1] = (float)(ps->winy); } /* only for convenience */ @@ -3210,14 +3209,14 @@ static void project_paint_begin(ProjPaintState *ps) CLAMP(ps->buckets_y, PROJ_BUCKET_RECT_MIN, PROJ_BUCKET_RECT_MAX); ps->bucketRect = (LinkNode **)MEM_callocN(sizeof(LinkNode *) * ps->buckets_x * ps->buckets_y, "paint-bucketRect"); - ps->bucketFaces= (LinkNode **)MEM_callocN(sizeof(LinkNode *) * ps->buckets_x * ps->buckets_y, "paint-bucketFaces"); + ps->bucketFaces = (LinkNode **)MEM_callocN(sizeof(LinkNode *) * ps->buckets_x * ps->buckets_y, "paint-bucketFaces"); - ps->bucketFlags= (unsigned char *)MEM_callocN(sizeof(char) * ps->buckets_x * ps->buckets_y, "paint-bucketFaces"); + ps->bucketFlags = (unsigned char *)MEM_callocN(sizeof(char) * ps->buckets_x * ps->buckets_y, "paint-bucketFaces"); #ifndef PROJ_DEBUG_NOSEAMBLEED if (ps->seam_bleed_px > 0.0f) { - ps->vertFaces= (LinkNode **)MEM_callocN(sizeof(LinkNode *) * ps->dm_totvert, "paint-vertFaces"); + ps->vertFaces = (LinkNode **)MEM_callocN(sizeof(LinkNode *) * ps->dm_totvert, "paint-vertFaces"); ps->faceSeamFlags = (char *)MEM_callocN(sizeof(char) * ps->dm_totface, "paint-faceSeamFlags"); - ps->faceSeamUVs= MEM_mallocN(sizeof(float) * ps->dm_totface * 8, "paint-faceSeamUVs"); + ps->faceSeamUVs = MEM_mallocN(sizeof(float) * ps->dm_totface * 8, "paint-faceSeamUVs"); } #endif @@ -3233,8 +3232,8 @@ static void project_paint_begin(ProjPaintState *ps) else { ps->thread_tot = BLI_system_thread_count(); } - for (a=0; a<ps->thread_tot; a++) { - ps->arena_mt[a] = BLI_memarena_new(1<<16, "project paint arena"); + for (a = 0; a < ps->thread_tot; a++) { + ps->arena_mt[a] = BLI_memarena_new(1 << 16, "project paint arena"); } arena = ps->arena_mt[0]; @@ -3244,7 +3243,7 @@ static void project_paint_begin(ProjPaintState *ps) ps->vertFlags = MEM_callocN(sizeof(char) * ps->dm_totvert, "paint-vertFlags"); - for (a=0, mv=ps->dm_mvert; a < ps->dm_totvert; a++, mv++) { + for (a = 0, mv = ps->dm_mvert; a < ps->dm_totvert; a++, mv++) { normal_short_to_float_v3(no, mv->no); if (ps->is_ortho) { @@ -3280,9 +3279,9 @@ static void project_paint_begin(ProjPaintState *ps) tpage = project_paint_face_image(ps, ps->dm_mtface, face_index); - if (tpage && ((((Mesh *)ps->ob->data)->editflag & ME_EDIT_PAINT_MASK)==0 || mf->flag & ME_FACE_SEL)) { + if (tpage && ((((Mesh *)ps->ob->data)->editflag & ME_EDIT_PAINT_MASK) == 0 || mf->flag & ME_FACE_SEL)) { - float *v1coSS, *v2coSS, *v3coSS, *v4coSS=NULL; + float *v1coSS, *v2coSS, *v3coSS, *v4coSS = NULL; v1coSS = ps->screenCoords[mf->v1]; v2coSS = ps->screenCoords[mf->v2]; @@ -3293,11 +3292,11 @@ static void project_paint_begin(ProjPaintState *ps) if (!ps->is_ortho) { - if ( v1coSS[0]==FLT_MAX || - v2coSS[0]==FLT_MAX || - v3coSS[0]==FLT_MAX || - (mf->v4 && v4coSS[0]==FLT_MAX) - ) { + if (v1coSS[0] == FLT_MAX || + v2coSS[0] == FLT_MAX || + v3coSS[0] == FLT_MAX || + (mf->v4 && v4coSS[0] == FLT_MAX)) + { continue; } } @@ -3305,26 +3304,27 @@ static void project_paint_begin(ProjPaintState *ps) #ifdef PROJ_DEBUG_WINCLIP /* ignore faces outside the view */ if ( - (v1coSS[0] < ps->screenMin[0] && - v2coSS[0] < ps->screenMin[0] && - v3coSS[0] < ps->screenMin[0] && - (mf->v4 && v4coSS[0] < ps->screenMin[0])) || - - (v1coSS[0] > ps->screenMax[0] && - v2coSS[0] > ps->screenMax[0] && - v3coSS[0] > ps->screenMax[0] && - (mf->v4 && v4coSS[0] > ps->screenMax[0])) || - - (v1coSS[1] < ps->screenMin[1] && - v2coSS[1] < ps->screenMin[1] && - v3coSS[1] < ps->screenMin[1] && - (mf->v4 && v4coSS[1] < ps->screenMin[1])) || - - (v1coSS[1] > ps->screenMax[1] && - v2coSS[1] > ps->screenMax[1] && - v3coSS[1] > ps->screenMax[1] && - (mf->v4 && v4coSS[1] > ps->screenMax[1])) - ) { + (v1coSS[0] < ps->screenMin[0] && + v2coSS[0] < ps->screenMin[0] && + v3coSS[0] < ps->screenMin[0] && + (mf->v4 && v4coSS[0] < ps->screenMin[0])) || + + (v1coSS[0] > ps->screenMax[0] && + v2coSS[0] > ps->screenMax[0] && + v3coSS[0] > ps->screenMax[0] && + (mf->v4 && v4coSS[0] > ps->screenMax[0])) || + + (v1coSS[1] < ps->screenMin[1] && + v2coSS[1] < ps->screenMin[1] && + v3coSS[1] < ps->screenMin[1] && + (mf->v4 && v4coSS[1] < ps->screenMin[1])) || + + (v1coSS[1] > ps->screenMax[1] && + v2coSS[1] > ps->screenMax[1] && + v3coSS[1] > ps->screenMax[1] && + (mf->v4 && v4coSS[1] > ps->screenMax[1])) + ) + { continue; } @@ -3336,12 +3336,12 @@ static void project_paint_begin(ProjPaintState *ps) /* Since we are interpolating the normals of faces, we want to make * sure all the verts are pointing away from the view, * not just the face */ - if ( (ps->vertFlags[mf->v1] & PROJ_VERT_CULL) && - (ps->vertFlags[mf->v2] & PROJ_VERT_CULL) && - (ps->vertFlags[mf->v3] & PROJ_VERT_CULL) && - (mf->v4==0 || ps->vertFlags[mf->v4] & PROJ_VERT_CULL) - - ) { + if ((ps->vertFlags[mf->v1] & PROJ_VERT_CULL) && + (ps->vertFlags[mf->v2] & PROJ_VERT_CULL) && + (ps->vertFlags[mf->v3] & PROJ_VERT_CULL) && + (mf->v4 == 0 || ps->vertFlags[mf->v4] & PROJ_VERT_CULL) + ) + { continue; } } @@ -3357,7 +3357,7 @@ static void project_paint_begin(ProjPaintState *ps) image_index = BLI_linklist_index(image_LinkList, tpage); - if (image_index==-1 && BKE_image_get_ibuf(tpage, NULL)) { /* MemArena dosnt have an append func */ + if (image_index == -1 && BKE_image_get_ibuf(tpage, NULL)) { /* MemArena dosnt have an append func */ BLI_linklist_append(&image_LinkList, tpage); image_index = ps->image_tot; ps->image_tot++; @@ -3377,7 +3377,7 @@ static void project_paint_begin(ProjPaintState *ps) /* build an array of images we use*/ projIma = ps->projImages = (ProjPaintImage *)BLI_memarena_alloc(arena, sizeof(ProjPaintImage) * ps->image_tot); - for (node= image_LinkList, i=0; node; node= node->next, i++, projIma++) { + for (node = image_LinkList, i = 0; node; node = node->next, i++, projIma++) { projIma->ima = node->link; projIma->touch = 0; projIma->ibuf = BKE_image_get_ibuf(projIma->ima, NULL); @@ -3399,8 +3399,8 @@ static void project_paint_begin_clone(ProjPaintState *ps, int mouse[2]) projCo[3] = 1.0f; mul_m4_v4(ps->projectMat, projCo); - ps->cloneOffset[0] = mouse[0] - ((float)(ps->winx/2.0f)+(ps->winx/2.0f)*projCo[0]/projCo[3]); - ps->cloneOffset[1] = mouse[1] - ((float)(ps->winy/2.0f)+(ps->winy/2.0f)*projCo[1]/projCo[3]); + ps->cloneOffset[0] = mouse[0] - ((float)(ps->winx / 2.0f) + (ps->winx / 2.0f) * projCo[0] / projCo[3]); + ps->cloneOffset[1] = mouse[1] - ((float)(ps->winy / 2.0f) + (ps->winy / 2.0f) * projCo[1] / projCo[3]); } } @@ -3426,9 +3426,9 @@ static void project_paint_end(ProjPaintState *ps) /* context */ ProjPaintImage *last_projIma; int last_image_index = -1; - int last_tile_width=0; + int last_tile_width = 0; - for (a=0, last_projIma=ps->projImages; a < ps->image_tot; a++, last_projIma++) { + for (a = 0, last_projIma = ps->projImages; a < ps->image_tot; a++, last_projIma++) { int size = sizeof(void **) * IMAPAINT_TILE_NUMBER(last_projIma->ibuf->x) * IMAPAINT_TILE_NUMBER(last_projIma->ibuf->y); last_projIma->undoRect = (void **) BLI_memarena_alloc(arena, size); memset(last_projIma->undoRect, 0, size); @@ -3437,28 +3437,28 @@ static void project_paint_end(ProjPaintState *ps) for (bucket_index = 0; bucket_index < bucket_tot; bucket_index++) { /* loop through all pixels */ - for (pixel_node= ps->bucketRect[bucket_index]; pixel_node; pixel_node= pixel_node->next) { + for (pixel_node = ps->bucketRect[bucket_index]; pixel_node; pixel_node = pixel_node->next) { /* ok we have a pixel, was it modified? */ projPixel = (ProjPixel *)pixel_node->link; if (last_image_index != projPixel->image_index) { /* set the context */ - last_image_index = projPixel->image_index; - last_projIma = ps->projImages + last_image_index; - last_tile_width = IMAPAINT_TILE_NUMBER(last_projIma->ibuf->x); - is_float = last_projIma->ibuf->rect_float ? 1 : 0; + last_image_index = projPixel->image_index; + last_projIma = ps->projImages + last_image_index; + last_tile_width = IMAPAINT_TILE_NUMBER(last_projIma->ibuf->x); + is_float = last_projIma->ibuf->rect_float ? 1 : 0; } - if ( (is_float == 0 && projPixel->origColor.uint != *projPixel->pixel.uint_pt) || - - (is_float == 1 && - ( projPixel->origColor.f[0] != projPixel->pixel.f_pt[0] || - projPixel->origColor.f[1] != projPixel->pixel.f_pt[1] || - projPixel->origColor.f[2] != projPixel->pixel.f_pt[2] || - projPixel->origColor.f[3] != projPixel->pixel.f_pt[3] )) - ) { + if ((is_float == 0 && projPixel->origColor.uint != *projPixel->pixel.uint_pt) || + (is_float == 1 && + (projPixel->origColor.f[0] != projPixel->pixel.f_pt[0] || + projPixel->origColor.f[1] != projPixel->pixel.f_pt[1] || + projPixel->origColor.f[2] != projPixel->pixel.f_pt[2] || + projPixel->origColor.f[3] != projPixel->pixel.f_pt[3])) + ) + { x_tile = projPixel->x_px >> IMAPAINT_TILE_BITS; y_tile = projPixel->y_px >> IMAPAINT_TILE_BITS; @@ -3468,9 +3468,9 @@ static void project_paint_end(ProjPaintState *ps) tile_index = x_tile + y_tile * last_tile_width; - if (last_projIma->undoRect[tile_index]==NULL) { + if (last_projIma->undoRect[tile_index] == NULL) { /* add the undo tile from the modified image, then write the original colors back into it */ - tilerect = last_projIma->undoRect[tile_index] = image_undo_push_tile(last_projIma->ima, last_projIma->ibuf, is_float ? (&tmpibuf_float):(&tmpibuf) , x_tile, y_tile); + tilerect = last_projIma->undoRect[tile_index] = image_undo_push_tile(last_projIma->ima, last_projIma->ibuf, is_float ? (&tmpibuf_float) : (&tmpibuf), x_tile, y_tile); } else { tilerect = last_projIma->undoRect[tile_index]; @@ -3484,14 +3484,14 @@ static void project_paint_end(ProjPaintState *ps) copy_v4_v4(rgba_fp, projPixel->origColor.f); } else { - ((unsigned int *)tilerect)[ (projPixel->x_px - x_round) + (projPixel->y_px - y_round) * IMAPAINT_TILE_SIZE ] = projPixel->origColor.uint; + ((unsigned int *)tilerect)[(projPixel->x_px - x_round) + (projPixel->y_px - y_round) * IMAPAINT_TILE_SIZE] = projPixel->origColor.uint; } } } } - if (tmpibuf) IMB_freeImBuf(tmpibuf); - if (tmpibuf_float) IMB_freeImBuf(tmpibuf_float); + if (tmpibuf) IMB_freeImBuf(tmpibuf); + if (tmpibuf_float) IMB_freeImBuf(tmpibuf_float); } /* done calculating undo data */ @@ -3510,7 +3510,7 @@ static void project_paint_end(ProjPaintState *ps) if (ps->vertFlags) MEM_freeN(ps->vertFlags); - for (a=0; a<ps->thread_tot; a++) { + for (a = 0; a < ps->thread_tot; a++) { BLI_memarena_free(ps->arena_mt[a]); } @@ -3550,7 +3550,7 @@ static void partial_redraw_array_init(ImagePaintPartialRedraw *pr) static int partial_redraw_array_merge(ImagePaintPartialRedraw *pr, ImagePaintPartialRedraw *pr_other, int tot) { - int touch= 0; + int touch = 0; while (tot--) { pr->x1 = MIN2(pr->x1, pr_other->x1); pr->y1 = MIN2(pr->y1, pr_other->y1); @@ -3572,14 +3572,14 @@ static int project_image_refresh_tagged(ProjPaintState *ps) { ImagePaintPartialRedraw *pr; ProjPaintImage *projIma; - int a,i; + int a, i; int redraw = 0; - for (a=0, projIma=ps->projImages; a < ps->image_tot; a++, projIma++) { + for (a = 0, projIma = ps->projImages; a < ps->image_tot; a++, projIma++) { if (projIma->touch) { /* look over each bound cell */ - for (i=0; i<PROJ_BOUNDBOX_SQUARED; i++) { + for (i = 0; i < PROJ_BOUNDBOX_SQUARED; i++) { pr = &(projIma->partRedrawRect[i]); if (pr->x2 != -1) { /* TODO - use 'enabled' ? */ imapaintpartial = *pr; @@ -3598,7 +3598,7 @@ static int project_image_refresh_tagged(ProjPaintState *ps) /* run this per painting onto each mouse location */ static int project_bucket_iter_init(ProjPaintState *ps, const float mval_f[2]) { - if (ps->source==PROJ_SRC_VIEW) { + if (ps->source == PROJ_SRC_VIEW) { float min_brush[2], max_brush[2]; const float radius = (float)brush_size(ps->scene, ps->brush); @@ -3615,7 +3615,7 @@ static int project_bucket_iter_init(ProjPaintState *ps, const float mval_f[2]) project_paint_bucket_bounds(ps, min_brush, max_brush, ps->bucketMin, ps->bucketMax); /* mouse outside the model areas? */ - if (ps->bucketMin[0]==ps->bucketMax[0] || ps->bucketMin[1]==ps->bucketMax[1]) { + if (ps->bucketMin[0] == ps->bucketMax[0] || ps->bucketMin[1] == ps->bucketMax[1]) { return 0; } @@ -3623,11 +3623,11 @@ static int project_bucket_iter_init(ProjPaintState *ps, const float mval_f[2]) ps->context_bucket_y = ps->bucketMin[1]; } else { /* reproject: PROJ_SRC_* */ - ps->bucketMin[0]= 0; - ps->bucketMin[1]= 0; + ps->bucketMin[0] = 0; + ps->bucketMin[1] = 0; - ps->bucketMax[0]= ps->buckets_x; - ps->bucketMax[1]= ps->buckets_y; + ps->bucketMax[0] = ps->buckets_x; + ps->bucketMax[1] = ps->buckets_y; ps->context_bucket_x = 0; ps->context_bucket_y = 0; @@ -3638,22 +3638,22 @@ static int project_bucket_iter_init(ProjPaintState *ps, const float mval_f[2]) static int project_bucket_iter_next(ProjPaintState *ps, int *bucket_index, rctf *bucket_bounds, const float mval[2]) { - const int diameter= 2*brush_size(ps->scene, ps->brush); + const int diameter = 2 * brush_size(ps->scene, ps->brush); if (ps->thread_tot > 1) BLI_lock_thread(LOCK_CUSTOM1); //printf("%d %d \n", ps->context_bucket_x, ps->context_bucket_y); - for ( ; ps->context_bucket_y < ps->bucketMax[1]; ps->context_bucket_y++) { - for ( ; ps->context_bucket_x < ps->bucketMax[0]; ps->context_bucket_x++) { + for (; ps->context_bucket_y < ps->bucketMax[1]; ps->context_bucket_y++) { + for (; ps->context_bucket_x < ps->bucketMax[0]; ps->context_bucket_x++) { /* use bucket_bounds for project_bucket_isect_circle and project_bucket_init*/ project_bucket_bounds(ps, ps->context_bucket_x, ps->context_bucket_y, bucket_bounds); - if ( (ps->source != PROJ_SRC_VIEW) || - project_bucket_isect_circle(mval, (float)(diameter*diameter), bucket_bounds) - ) { + if ((ps->source != PROJ_SRC_VIEW) || + project_bucket_isect_circle(mval, (float)(diameter * diameter), bucket_bounds)) + { *bucket_index = ps->context_bucket_x + (ps->context_bucket_y * ps->buckets_x); ps->context_bucket_x++; @@ -3679,7 +3679,7 @@ typedef struct ProjectHandle { float mval[2]; /* annoying but we need to have image bounds per thread, then merge into ps->projectPartialRedraws */ - ProjPaintImage *projImages; /* array of partial redraws */ + ProjPaintImage *projImages; /* array of partial redraws */ /* thread settings */ int thread_index; @@ -3690,21 +3690,21 @@ static void blend_color_mix(unsigned char *cp, const unsigned char *cp1, const u /* this and other blending modes previously used >>8 instead of /255. both * are not equivalent (>>8 is /256), and the former results in rounding * errors that can turn colors black fast after repeated blending */ - const int mfac= 255-fac; + const int mfac = 255 - fac; - cp[0]= (mfac*cp1[0]+fac*cp2[0])/255; - cp[1]= (mfac*cp1[1]+fac*cp2[1])/255; - cp[2]= (mfac*cp1[2]+fac*cp2[2])/255; - cp[3]= (mfac*cp1[3]+fac*cp2[3])/255; + cp[0] = (mfac * cp1[0] + fac * cp2[0]) / 255; + cp[1] = (mfac * cp1[1] + fac * cp2[1]) / 255; + cp[2] = (mfac * cp1[2] + fac * cp2[2]) / 255; + cp[3] = (mfac * cp1[3] + fac * cp2[3]) / 255; } static void blend_color_mix_float(float *cp, const float *cp1, const float *cp2, const float fac) { - const float mfac= 1.0f-fac; - cp[0]= mfac*cp1[0] + fac*cp2[0]; - cp[1]= mfac*cp1[1] + fac*cp2[1]; - cp[2]= mfac*cp1[2] + fac*cp2[2]; - cp[3]= mfac*cp1[3] + fac*cp2[3]; + const float mfac = 1.0f - fac; + cp[0] = mfac * cp1[0] + fac * cp2[0]; + cp[1] = mfac * cp1[1] + fac * cp2[1]; + cp[2] = mfac * cp1[2] + fac * cp2[2]; + cp[3] = mfac * cp1[3] + fac * cp2[3]; } static void blend_color_mix_accum(unsigned char *cp, const unsigned char *cp1, const unsigned char *cp2, const int fac) @@ -3712,34 +3712,34 @@ static void blend_color_mix_accum(unsigned char *cp, const unsigned char *cp1, c /* this and other blending modes previously used >>8 instead of /255. both * are not equivalent (>>8 is /256), and the former results in rounding * errors that can turn colors black fast after repeated blending */ - const int mfac= 255-fac; - const int alpha= cp1[3] + ((fac * cp2[3]) / 255); + const int mfac = 255 - fac; + const int alpha = cp1[3] + ((fac * cp2[3]) / 255); - cp[0]= (mfac*cp1[0]+fac*cp2[0])/255; - cp[1]= (mfac*cp1[1]+fac*cp2[1])/255; - cp[2]= (mfac*cp1[2]+fac*cp2[2])/255; - cp[3]= alpha > 255 ? 255 : alpha; + cp[0] = (mfac * cp1[0] + fac * cp2[0]) / 255; + cp[1] = (mfac * cp1[1] + fac * cp2[1]) / 255; + cp[2] = (mfac * cp1[2] + fac * cp2[2]) / 255; + cp[3] = alpha > 255 ? 255 : alpha; } static void do_projectpaint_clone(ProjPaintState *ps, ProjPixel *projPixel, float alpha, float mask) { - if (ps->is_airbrush==0 && mask < 1.0f) { - projPixel->newColor.uint = IMB_blend_color(projPixel->newColor.uint, ((ProjPixelClone*)projPixel)->clonepx.uint, (int)(alpha*255), ps->blend); - blend_color_mix(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (int)(mask*255)); + if (ps->is_airbrush == 0 && mask < 1.0f) { + projPixel->newColor.uint = IMB_blend_color(projPixel->newColor.uint, ((ProjPixelClone *)projPixel)->clonepx.uint, (int)(alpha * 255), ps->blend); + blend_color_mix(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (int)(mask * 255)); } else { - *projPixel->pixel.uint_pt = IMB_blend_color(*projPixel->pixel.uint_pt, ((ProjPixelClone*)projPixel)->clonepx.uint, (int)(alpha*mask*255), ps->blend); + *projPixel->pixel.uint_pt = IMB_blend_color(*projPixel->pixel.uint_pt, ((ProjPixelClone *)projPixel)->clonepx.uint, (int)(alpha * mask * 255), ps->blend); } } static void do_projectpaint_clone_f(ProjPaintState *ps, ProjPixel *projPixel, float alpha, float mask) { - if (ps->is_airbrush==0 && mask < 1.0f) { + if (ps->is_airbrush == 0 && mask < 1.0f) { IMB_blend_color_float(projPixel->newColor.f, projPixel->newColor.f, ((ProjPixelClone *)projPixel)->clonepx.f, alpha, ps->blend); blend_color_mix_float(projPixel->pixel.f_pt, projPixel->origColor.f, projPixel->newColor.f, mask); } else { - IMB_blend_color_float(projPixel->pixel.f_pt, projPixel->pixel.f_pt, ((ProjPixelClone *)projPixel)->clonepx.f, alpha*mask, ps->blend); + IMB_blend_color_float(projPixel->pixel.f_pt, projPixel->pixel.f_pt, ((ProjPixelClone *)projPixel)->clonepx.f, alpha * mask, ps->blend); } } @@ -3753,10 +3753,10 @@ static void do_projectpaint_smear(ProjPaintState *ps, ProjPixel *projPixel, floa { unsigned char rgba_ub[4]; - if (project_paint_PickColor(ps, co, NULL, rgba_ub, 1)==0) + if (project_paint_PickColor(ps, co, NULL, rgba_ub, 1) == 0) return; /* ((ProjPixelClone *)projPixel)->clonepx.uint = IMB_blend_color(*projPixel->pixel.uint_pt, *((unsigned int *)rgba_ub), (int)(alpha*mask*255), ps->blend); */ - blend_color_mix(((ProjPixelClone *)projPixel)->clonepx.ch, projPixel->pixel.ch_pt, rgba_ub, (int)(alpha*mask*255)); + blend_color_mix(((ProjPixelClone *)projPixel)->clonepx.ch, projPixel->pixel.ch_pt, rgba_ub, (int)(alpha * mask * 255)); BLI_linklist_prepend_arena(smearPixels, (void *)projPixel, smearArena); } @@ -3764,11 +3764,11 @@ static void do_projectpaint_smear_f(ProjPaintState *ps, ProjPixel *projPixel, fl { float rgba[4]; - if (project_paint_PickColor(ps, co, rgba, NULL, 1)==0) + if (project_paint_PickColor(ps, co, rgba, NULL, 1) == 0) return; /* (ProjPixelClone *)projPixel)->clonepx.uint = IMB_blend_color(*((unsigned int *)rgba_smear), *((unsigned int *)rgba_ub), (int)(alpha*mask*255), ps->blend); */ - blend_color_mix_float(((ProjPixelClone *)projPixel)->clonepx.f, projPixel->pixel.f_pt, rgba, alpha*mask); + blend_color_mix_float(((ProjPixelClone *)projPixel)->clonepx.f, projPixel->pixel.f_pt, rgba, alpha * mask); BLI_linklist_prepend_arena(smearPixels_f, (void *)projPixel, smearArena); } @@ -3787,12 +3787,12 @@ static void do_projectpaint_draw(ProjPaintState *ps, ProjPixel *projPixel, float rgba_ub[3] = 255; } - if (ps->is_airbrush==0 && mask < 1.0f) { - projPixel->newColor.uint = IMB_blend_color(projPixel->newColor.uint, *((unsigned int *)rgba_ub), (int)(alpha*255), ps->blend); - blend_color_mix(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (int)(mask*255)); + if (ps->is_airbrush == 0 && mask < 1.0f) { + projPixel->newColor.uint = IMB_blend_color(projPixel->newColor.uint, *((unsigned int *)rgba_ub), (int)(alpha * 255), ps->blend); + blend_color_mix(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (int)(mask * 255)); } else { - *projPixel->pixel.uint_pt = IMB_blend_color(*projPixel->pixel.uint_pt, *((unsigned int *)rgba_ub), (int)(alpha*mask*255), ps->blend); + *projPixel->pixel.uint_pt = IMB_blend_color(*projPixel->pixel.uint_pt, *((unsigned int *)rgba_ub), (int)(alpha * mask * 255), ps->blend); } } @@ -3819,12 +3819,12 @@ static void do_projectpaint_draw_f(ProjPaintState *ps, ProjPixel *projPixel, flo rgba[3] = 1.0; } - if (ps->is_airbrush==0 && mask < 1.0f) { + if (ps->is_airbrush == 0 && mask < 1.0f) { IMB_blend_color_float(projPixel->newColor.f, projPixel->newColor.f, rgba, alpha, ps->blend); blend_color_mix_float(projPixel->pixel.f_pt, projPixel->origColor.f, projPixel->newColor.f, mask); } else { - IMB_blend_color_float(projPixel->pixel.f_pt, projPixel->pixel.f_pt, rgba, alpha*mask, ps->blend); + IMB_blend_color_float(projPixel->pixel.f_pt, projPixel->pixel.f_pt, rgba, alpha * mask, ps->blend); } } @@ -3834,18 +3834,18 @@ static void do_projectpaint_draw_f(ProjPaintState *ps, ProjPixel *projPixel, flo static void *do_projectpaint_thread(void *ph_v) { /* First unpack args from the struct */ - ProjPaintState *ps = ((ProjectHandle *)ph_v)->ps; - ProjPaintImage *projImages = ((ProjectHandle *)ph_v)->projImages; - const float *lastpos = ((ProjectHandle *)ph_v)->prevmval; - const float *pos = ((ProjectHandle *)ph_v)->mval; - const int thread_index = ((ProjectHandle *)ph_v)->thread_index; + ProjPaintState *ps = ((ProjectHandle *)ph_v)->ps; + ProjPaintImage *projImages = ((ProjectHandle *)ph_v)->projImages; + const float *lastpos = ((ProjectHandle *)ph_v)->prevmval; + const float *pos = ((ProjectHandle *)ph_v)->mval; + const int thread_index = ((ProjectHandle *)ph_v)->thread_index; /* Done with args from ProjectHandle */ LinkNode *node; ProjPixel *projPixel; int last_index = -1; - ProjPaintImage *last_projIma= NULL; + ProjPaintImage *last_projIma = NULL; ImagePaintPartialRedraw *last_partial_redraw_cell; float rgba[4], alpha, dist_nosqrt, dist; @@ -3862,20 +3862,20 @@ static void *do_projectpaint_thread(void *ph_v) float co[2]; float mask = 1.0f; /* airbrush wont use mask */ unsigned short mask_short; - const float radius= (float)brush_size(ps->scene, ps->brush); - const float radius_squared= radius*radius; /* avoid a square root with every dist comparison */ + const float radius = (float)brush_size(ps->scene, ps->brush); + const float radius_squared = radius * radius; /* avoid a square root with every dist comparison */ - short lock_alpha= ELEM(ps->brush->blend, IMB_BLEND_ERASE_ALPHA, IMB_BLEND_ADD_ALPHA) ? 0 : ps->brush->flag & BRUSH_LOCK_ALPHA; + short lock_alpha = ELEM(ps->brush->blend, IMB_BLEND_ERASE_ALPHA, IMB_BLEND_ADD_ALPHA) ? 0 : ps->brush->flag & BRUSH_LOCK_ALPHA; LinkNode *smearPixels = NULL; LinkNode *smearPixels_f = NULL; MemArena *smearArena = NULL; /* mem arena for this brush projection only */ - if (tool==PAINT_TOOL_SMEAR) { + if (tool == PAINT_TOOL_SMEAR) { pos_ofs[0] = pos[0] - lastpos[0]; pos_ofs[1] = pos[1] - lastpos[1]; - smearArena = BLI_memarena_new(1<<16, "paint smear arena"); + smearArena = BLI_memarena_new(1 << 16, "paint smear arena"); } /* printf("brush bounds %d %d %d %d\n", bucketMin[0], bucketMin[1], bucketMax[0], bucketMax[1]); */ @@ -3897,8 +3897,8 @@ static void *do_projectpaint_thread(void *ph_v) bicubic_interpolation_color(ps->reproject_ibuf, projPixel->newColor.ch, NULL, projPixel->projCoSS[0], projPixel->projCoSS[1]); if (projPixel->newColor.ch[3]) { - mask = ((float)projPixel->mask)/65535.0f; - blend_color_mix_accum(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (int)(mask*projPixel->newColor.ch[3])); + mask = ((float)projPixel->mask) / 65535.0f; + blend_color_mix_accum(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (int)(mask * projPixel->newColor.ch[3])); } } @@ -3914,7 +3914,7 @@ static void *do_projectpaint_thread(void *ph_v) /*if (dist < radius) {*/ /* correct but uses a sqrtf */ if (dist_nosqrt <= radius_squared) { - dist=sqrtf(dist_nosqrt); + dist = sqrtf(dist_nosqrt); falloff = brush_curve_strength_clamp(ps->brush, dist, radius); @@ -3931,7 +3931,7 @@ static void *do_projectpaint_thread(void *ph_v) if (ps->is_airbrush) { /* for an aurbrush there is no real mask, so just multiply the alpha by it */ alpha *= falloff * brush_alpha(ps->scene, ps->brush); - mask = ((float)projPixel->mask)/65535.0f; + mask = ((float)projPixel->mask) / 65535.0f; } else { /* This brush dosnt accumulate so add some curve to the brushes falloff */ @@ -3940,7 +3940,7 @@ static void *do_projectpaint_thread(void *ph_v) mask_short = (unsigned short)(projPixel->mask * (brush_alpha(ps->scene, ps->brush) * falloff)); if (mask_short > projPixel->mask_max) { - mask = ((float)mask_short)/65535.0f; + mask = ((float)mask_short) / 65535.0f; projPixel->mask_max = mask_short; } else { @@ -3966,39 +3966,39 @@ static void *do_projectpaint_thread(void *ph_v) last_partial_redraw_cell->x1 = MIN2(last_partial_redraw_cell->x1, projPixel->x_px); last_partial_redraw_cell->y1 = MIN2(last_partial_redraw_cell->y1, projPixel->y_px); - last_partial_redraw_cell->x2 = MAX2(last_partial_redraw_cell->x2, projPixel->x_px+1); - last_partial_redraw_cell->y2 = MAX2(last_partial_redraw_cell->y2, projPixel->y_px+1); + last_partial_redraw_cell->x2 = MAX2(last_partial_redraw_cell->x2, projPixel->x_px + 1); + last_partial_redraw_cell->y2 = MAX2(last_partial_redraw_cell->y2, projPixel->y_px + 1); - switch(tool) { - case PAINT_TOOL_CLONE: - if (is_floatbuf) { - if (((ProjPixelClone *)projPixel)->clonepx.f[3]) { - do_projectpaint_clone_f(ps, projPixel, alpha, mask); /* rgba isn't used for cloning, only alpha */ + switch (tool) { + case PAINT_TOOL_CLONE: + if (is_floatbuf) { + if (((ProjPixelClone *)projPixel)->clonepx.f[3]) { + do_projectpaint_clone_f(ps, projPixel, alpha, mask); /* rgba isn't used for cloning, only alpha */ + } } - } - else { - if (((ProjPixelClone*)projPixel)->clonepx.ch[3]) { - do_projectpaint_clone(ps, projPixel, alpha, mask); /* rgba isn't used for cloning, only alpha */ + else { + if (((ProjPixelClone *)projPixel)->clonepx.ch[3]) { + do_projectpaint_clone(ps, projPixel, alpha, mask); /* rgba isn't used for cloning, only alpha */ + } } - } - break; - case PAINT_TOOL_SMEAR: - sub_v2_v2v2(co, projPixel->projCoSS, pos_ofs); - - if (is_floatbuf) do_projectpaint_smear_f(ps, projPixel, alpha, mask, smearArena, &smearPixels_f, co); - else do_projectpaint_smear(ps, projPixel, alpha, mask, smearArena, &smearPixels, co); - break; - default: - if (is_floatbuf) do_projectpaint_draw_f(ps, projPixel, rgba, alpha, mask, use_color_correction); - else do_projectpaint_draw(ps, projPixel, rgba, alpha, mask); - break; + break; + case PAINT_TOOL_SMEAR: + sub_v2_v2v2(co, projPixel->projCoSS, pos_ofs); + + if (is_floatbuf) do_projectpaint_smear_f(ps, projPixel, alpha, mask, smearArena, &smearPixels_f, co); + else do_projectpaint_smear(ps, projPixel, alpha, mask, smearArena, &smearPixels, co); + break; + default: + if (is_floatbuf) do_projectpaint_draw_f(ps, projPixel, rgba, alpha, mask, use_color_correction); + else do_projectpaint_draw(ps, projPixel, rgba, alpha, mask); + break; } } if (lock_alpha) { - if (is_floatbuf) projPixel->pixel.f_pt[3]= projPixel->origColor.f[3]; - else projPixel->pixel.ch_pt[3]= projPixel->origColor.ch[3]; + if (is_floatbuf) projPixel->pixel.f_pt[3] = projPixel->origColor.f[3]; + else projPixel->pixel.ch_pt[3] = projPixel->origColor.ch[3]; } /* done painting */ @@ -4009,14 +4009,14 @@ static void *do_projectpaint_thread(void *ph_v) } - if (tool==PAINT_TOOL_SMEAR) { + if (tool == PAINT_TOOL_SMEAR) { - for (node= smearPixels; node; node= node->next) { /* this wont run for a float image */ + for (node = smearPixels; node; node = node->next) { /* this wont run for a float image */ projPixel = node->link; *projPixel->pixel.uint_pt = ((ProjPixelClone *)projPixel)->clonepx.uint; } - for (node= smearPixels_f; node; node= node->next) { + for (node = smearPixels_f; node; node = node->next) { projPixel = node->link; copy_v4_v4(projPixel->pixel.f_pt, ((ProjPixelClone *)projPixel)->clonepx.f); } @@ -4035,7 +4035,7 @@ static int project_paint_op(void *state, ImBuf *UNUSED(ibufb), const float lastp ProjectHandle handles[BLENDER_MAX_THREADS]; ListBase threads; - int a,i; + int a, i; if (!project_bucket_iter_init(ps, pos)) { return 0; @@ -4045,7 +4045,7 @@ static int project_paint_op(void *state, ImBuf *UNUSED(ibufb), const float lastp BLI_init_threads(&threads, do_projectpaint_thread, ps->thread_tot); /* get the threads running */ - for (a=0; a < ps->thread_tot; a++) { + for (a = 0; a < ps->thread_tot; a++) { /* set defaults in handles */ //memset(&handles[a], 0, sizeof(BakeShade)); @@ -4062,7 +4062,7 @@ static int project_paint_op(void *state, ImBuf *UNUSED(ibufb), const float lastp memcpy(handles[a].projImages, ps->projImages, ps->image_tot * sizeof(ProjPaintImage)); /* image bounds */ - for (i=0; i< ps->image_tot; i++) { + for (i = 0; i < ps->image_tot; i++) { handles[a].projImages[i].partRedrawRect = (ImagePaintPartialRedraw *)BLI_memarena_alloc(ps->arena_mt[a], sizeof(ImagePaintPartialRedraw) * PROJ_BOUNDBOX_SQUARED); memcpy(handles[a].projImages[i].partRedrawRect, ps->projImages[i].partRedrawRect, sizeof(ImagePaintPartialRedraw) * PROJ_BOUNDBOX_SQUARED); } @@ -4078,9 +4078,9 @@ static int project_paint_op(void *state, ImBuf *UNUSED(ibufb), const float lastp /* move threaded bounds back into ps->projectPartialRedraws */ - for (i=0; i < ps->image_tot; i++) { + for (i = 0; i < ps->image_tot; i++) { int touch = 0; - for (a=0; a < ps->thread_tot; a++) { + for (a = 0; a < ps->thread_tot; a++) { touch |= partial_redraw_array_merge(ps->projImages[i].partRedrawRect, handles[a].projImages[i].partRedrawRect, PROJ_BOUNDBOX_SQUARED); } @@ -4117,10 +4117,10 @@ static int project_paint_stroke(ProjPaintState *ps, BrushPainter *painter, const { int a, redraw; - for (a=0; a < ps->image_tot; a++) + for (a = 0; a < ps->image_tot; a++) partial_redraw_array_init(ps->projImages[a].partRedrawRect); - redraw= project_paint_sub_stroke(ps, painter, prevmval_i, mval_i, time, pressure); + redraw = project_paint_sub_stroke(ps, painter, prevmval_i, mval_i, time, pressure); if (project_image_refresh_tagged(ps)) return redraw; @@ -4138,7 +4138,7 @@ static void imapaint_clear_partial_redraw(void) static void imapaint_dirty_region(Image *ima, ImBuf *ibuf, int x, int y, int w, int h) { ImBuf *tmpibuf = NULL; - int srcx= 0, srcy= 0, origx; + int srcx = 0, srcy = 0, origx; IMB_rectclip(ibuf, NULL, &x, &y, &srcx, &srcy, &w, &h); @@ -4148,15 +4148,15 @@ static void imapaint_dirty_region(Image *ima, ImBuf *ibuf, int x, int y, int w, if (!imapaintpartial.enabled) { imapaintpartial.x1 = x; imapaintpartial.y1 = y; - imapaintpartial.x2 = x+w; - imapaintpartial.y2 = y+h; + imapaintpartial.x2 = x + w; + imapaintpartial.y2 = y + h; imapaintpartial.enabled = 1; } else { imapaintpartial.x1 = MIN2(imapaintpartial.x1, x); imapaintpartial.y1 = MIN2(imapaintpartial.y1, y); - imapaintpartial.x2 = MAX2(imapaintpartial.x2, x+w); - imapaintpartial.y2 = MAX2(imapaintpartial.y2, y+h); + imapaintpartial.x2 = MAX2(imapaintpartial.x2, x + w); + imapaintpartial.y2 = MAX2(imapaintpartial.y2, y + h); } w = ((x + w - 1) >> IMAPAINT_TILE_BITS); @@ -4165,7 +4165,7 @@ static void imapaint_dirty_region(Image *ima, ImBuf *ibuf, int x, int y, int w, y = (y >> IMAPAINT_TILE_BITS); for (; y <= h; y++) - for (x=origx; x <= w; x++) + for (x = origx; x <= w; x++) image_undo_push_tile(ima, ibuf, &tmpibuf, x, y); ibuf->userflags |= IB_BITMAPDIRTY; @@ -4177,7 +4177,7 @@ static void imapaint_dirty_region(Image *ima, ImBuf *ibuf, int x, int y, int w, static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, short texpaint) { if (ibuf->rect_float) - ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */ + ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */ if (ibuf->mipmap[0]) ibuf->userflags |= IB_MIPMAP_INVALID; @@ -4187,7 +4187,7 @@ static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, s int w = imapaintpartial.x2 - imapaintpartial.x1; int h = imapaintpartial.y2 - imapaintpartial.y1; /* Testing with partial update in uv editor too */ - GPU_paint_update_image(image, imapaintpartial.x1, imapaintpartial.y1, w, h, 0);//!texpaint); + GPU_paint_update_image(image, imapaintpartial.x1, imapaintpartial.y1, w, h, 0); //!texpaint); } } @@ -4203,7 +4203,7 @@ static void imapaint_ibuf_get_set_rgb(ImBuf *ibuf, int x, int y, short torus, sh } if (ibuf->rect_float) { - float *rrgbf = ibuf->rect_float + (ibuf->x*y + x)*4; + float *rrgbf = ibuf->rect_float + (ibuf->x * y + x) * 4; if (set) { IMAPAINT_FLOAT_RGB_COPY(rrgbf, rgb); @@ -4213,7 +4213,7 @@ static void imapaint_ibuf_get_set_rgb(ImBuf *ibuf, int x, int y, short torus, sh } } else { - char *rrgb = (char*)ibuf->rect + (ibuf->x*y + x)*4; + char *rrgb = (char *)ibuf->rect + (ibuf->x * y + x) * 4; if (set) { IMAPAINT_FLOAT_RGB_TO_CHAR(rrgb, rgb) @@ -4256,14 +4256,14 @@ static void imapaint_lift_soften(ImBuf *ibuf, ImBuf *ibufb, int *pos, short toru if (!torus) { IMB_rectclip(ibuf, ibufb, &in_off[0], &in_off[1], &out_off[0], - &out_off[1], &dim[0], &dim[1]); + &out_off[1], &dim[0], &dim[1]); if ((dim[0] == 0) || (dim[1] == 0)) return; } - for (y=0; y < dim[1]; y++) { - for (x=0; x < dim[0]; x++) { + for (y = 0; y < dim[1]; y++) { + for (x = 0; x < dim[0]; x++) { /* get input pixel */ xi = in_off[0] + x; yi = in_off[1] + y; @@ -4271,16 +4271,16 @@ static void imapaint_lift_soften(ImBuf *ibuf, ImBuf *ibufb, int *pos, short toru count = 1; imapaint_ibuf_get_set_rgb(ibuf, xi, yi, torus, 0, outrgb); - count += imapaint_ibuf_add_if(ibuf, xi-1, yi-1, outrgb, torus); - count += imapaint_ibuf_add_if(ibuf, xi-1, yi , outrgb, torus); - count += imapaint_ibuf_add_if(ibuf, xi-1, yi+1, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi - 1, yi - 1, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi - 1, yi, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi - 1, yi + 1, outrgb, torus); - count += imapaint_ibuf_add_if(ibuf, xi , yi-1, outrgb, torus); - count += imapaint_ibuf_add_if(ibuf, xi , yi+1, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi, yi - 1, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi, yi + 1, outrgb, torus); - count += imapaint_ibuf_add_if(ibuf, xi+1, yi-1, outrgb, torus); - count += imapaint_ibuf_add_if(ibuf, xi+1, yi , outrgb, torus); - count += imapaint_ibuf_add_if(ibuf, xi+1, yi+1, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi + 1, yi - 1, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi + 1, yi, outrgb, torus); + count += imapaint_ibuf_add_if(ibuf, xi + 1, yi + 1, outrgb, torus); outrgb[0] /= count; outrgb[1] /= count; @@ -4296,23 +4296,23 @@ static void imapaint_lift_soften(ImBuf *ibuf, ImBuf *ibufb, int *pos, short toru static void imapaint_set_region(ImagePaintRegion *region, int destx, int desty, int srcx, int srcy, int width, int height) { - region->destx= destx; - region->desty= desty; - region->srcx= srcx; - region->srcy= srcy; - region->width= width; - region->height= height; + region->destx = destx; + region->desty = desty; + region->srcx = srcx; + region->srcy = srcy; + region->width = width; + region->height = height; } static int imapaint_torus_split_region(ImagePaintRegion region[4], ImBuf *dbuf, ImBuf *sbuf) { - int destx= region->destx; - int desty= region->desty; - int srcx= region->srcx; - int srcy= region->srcy; - int width= region->width; - int height= region->height; - int origw, origh, w, h, tot= 0; + int destx = region->destx; + int desty = region->desty; + int srcx = region->srcx; + int srcy = region->srcy; + int width = region->width; + int height = region->height; + int origw, origh, w, h, tot = 0; /* convert destination and source coordinates to be within image */ destx = destx % dbuf->x; @@ -4326,8 +4326,8 @@ static int imapaint_torus_split_region(ImagePaintRegion region[4], ImBuf *dbuf, /* clip width of blending area to destination imbuf, to avoid writing the * same pixel twice */ - origw = w = (width > dbuf->x)? dbuf->x: width; - origh = h = (height > dbuf->y)? dbuf->y: height; + origw = w = (width > dbuf->x) ? dbuf->x : width; + origh = h = (height > dbuf->y) ? dbuf->y : height; /* clip within image */ IMB_rectclip(dbuf, sbuf, &destx, &desty, &srcx, &srcy, &w, &h); @@ -4335,11 +4335,11 @@ static int imapaint_torus_split_region(ImagePaintRegion region[4], ImBuf *dbuf, /* do 3 other rects if needed */ if (w < origw) - imapaint_set_region(®ion[tot++], (destx+w)%dbuf->x, desty, (srcx+w)%sbuf->x, srcy, origw-w, h); + imapaint_set_region(®ion[tot++], (destx + w) % dbuf->x, desty, (srcx + w) % sbuf->x, srcy, origw - w, h); if (h < origh) - imapaint_set_region(®ion[tot++], destx, (desty+h)%dbuf->y, srcx, (srcy+h)%sbuf->y, w, origh-h); + imapaint_set_region(®ion[tot++], destx, (desty + h) % dbuf->y, srcx, (srcy + h) % sbuf->y, w, origh - h); if ((w < origw) && (h < origh)) - imapaint_set_region(®ion[tot++], (destx+w)%dbuf->x, (desty+h)%dbuf->y, (srcx+w)%sbuf->x, (srcy+h)%sbuf->y, origw-w, origh-h); + imapaint_set_region(®ion[tot++], (destx + w) % dbuf->x, (desty + h) % dbuf->y, (srcx + w) % sbuf->x, (srcy + h) % sbuf->y, origw - w, origh - h); return tot; } @@ -4350,46 +4350,46 @@ static void imapaint_lift_smear(ImBuf *ibuf, ImBuf *ibufb, int *pos) int a, tot; imapaint_set_region(region, 0, 0, pos[0], pos[1], ibufb->x, ibufb->y); - tot= imapaint_torus_split_region(region, ibufb, ibuf); + tot = imapaint_torus_split_region(region, ibufb, ibuf); - for (a=0; a<tot; a++) + for (a = 0; a < tot; a++) IMB_rectblend(ibufb, ibuf, region[a].destx, region[a].desty, - region[a].srcx, region[a].srcy, - region[a].width, region[a].height, IMB_BLEND_COPY_RGB); + region[a].srcx, region[a].srcy, + region[a].width, region[a].height, IMB_BLEND_COPY_RGB); } static ImBuf *imapaint_lift_clone(ImBuf *ibuf, ImBuf *ibufb, int *pos) { /* note: allocImbuf returns zero'd memory, so regions outside image will * have zero alpha, and hence not be blended onto the image */ - int w=ibufb->x, h=ibufb->y, destx=0, desty=0, srcx=pos[0], srcy=pos[1]; - ImBuf *clonebuf= IMB_allocImBuf(w, h, ibufb->planes, ibufb->flags); + int w = ibufb->x, h = ibufb->y, destx = 0, desty = 0, srcx = pos[0], srcy = pos[1]; + ImBuf *clonebuf = IMB_allocImBuf(w, h, ibufb->planes, ibufb->flags); IMB_rectclip(clonebuf, ibuf, &destx, &desty, &srcx, &srcy, &w, &h); IMB_rectblend(clonebuf, ibuf, destx, desty, srcx, srcy, w, h, - IMB_BLEND_COPY_RGB); + IMB_BLEND_COPY_RGB); IMB_rectblend(clonebuf, ibufb, destx, desty, destx, desty, w, h, - IMB_BLEND_COPY_ALPHA); + IMB_BLEND_COPY_ALPHA); return clonebuf; } static void imapaint_convert_brushco(ImBuf *ibufb, const float pos[2], int ipos[2]) { - ipos[0]= (int)floorf((pos[0] - ibufb->x/2) + 1.0f); - ipos[1]= (int)floorf((pos[1] - ibufb->y/2) + 1.0f); + ipos[0] = (int)floorf((pos[0] - ibufb->x / 2) + 1.0f); + ipos[1] = (int)floorf((pos[1] - ibufb->y / 2) + 1.0f); } /* dosnt run for projection painting * only the old style painting in the 3d view */ static int imapaint_paint_op(void *state, ImBuf *ibufb, const float lastpos[2], const float pos[2]) { - ImagePaintState *s= ((ImagePaintState*)state); - ImBuf *clonebuf= NULL, *frombuf; + ImagePaintState *s = ((ImagePaintState *)state); + ImBuf *clonebuf = NULL, *frombuf; ImagePaintRegion region[4]; - short torus= s->brush->flag & BRUSH_TORUS; - short blend= s->blend; - float *offset= s->brush->clone.offset; + short torus = s->brush->flag & BRUSH_TORUS; + short blend = s->blend; + float *offset = s->brush->clone.offset; float liftpos[2]; int bpos[2], blastpos[2], bliftpos[2]; int a, tot; @@ -4401,41 +4401,41 @@ static int imapaint_paint_op(void *state, ImBuf *ibufb, const float lastpos[2], imapaint_lift_soften(s->canvas, ibufb, bpos, torus); } else if (s->tool == PAINT_TOOL_SMEAR) { - if (lastpos[0]==pos[0] && lastpos[1]==pos[1]) + if (lastpos[0] == pos[0] && lastpos[1] == pos[1]) return 0; imapaint_convert_brushco(ibufb, lastpos, blastpos); imapaint_lift_smear(s->canvas, ibufb, blastpos); } else if (s->tool == PAINT_TOOL_CLONE && s->clonecanvas) { - liftpos[0]= pos[0] - offset[0]*s->canvas->x; - liftpos[1]= pos[1] - offset[1]*s->canvas->y; + liftpos[0] = pos[0] - offset[0] * s->canvas->x; + liftpos[1] = pos[1] - offset[1] * s->canvas->y; imapaint_convert_brushco(ibufb, liftpos, bliftpos); - clonebuf= imapaint_lift_clone(s->clonecanvas, ibufb, bliftpos); + clonebuf = imapaint_lift_clone(s->clonecanvas, ibufb, bliftpos); } - frombuf= (clonebuf)? clonebuf: ibufb; + frombuf = (clonebuf) ? clonebuf : ibufb; if (torus) { imapaint_set_region(region, bpos[0], bpos[1], 0, 0, frombuf->x, frombuf->y); - tot= imapaint_torus_split_region(region, s->canvas, frombuf); + tot = imapaint_torus_split_region(region, s->canvas, frombuf); } else { imapaint_set_region(region, bpos[0], bpos[1], 0, 0, frombuf->x, frombuf->y); - tot= 1; + tot = 1; } /* blend into canvas */ - for (a=0; a<tot; a++) { + for (a = 0; a < tot; a++) { imapaint_dirty_region(s->image, s->canvas, - region[a].destx, region[a].desty, - region[a].width, region[a].height); + region[a].destx, region[a].desty, + region[a].width, region[a].height); IMB_rectblend(s->canvas, frombuf, - region[a].destx, region[a].desty, - region[a].srcx, region[a].srcy, - region[a].width, region[a].height, blend); + region[a].destx, region[a].desty, + region[a].srcx, region[a].srcy, + region[a].width, region[a].height, blend); } if (clonebuf) IMB_freeImBuf(clonebuf); @@ -4455,42 +4455,42 @@ static int texpaint_break_stroke(float *prevuv, float *fwuv, float *bkuv, float sub_v2_v2v2(d1, fwuv, prevuv); sub_v2_v2v2(d2, uv, bkuv); - return ((dot_v2v2(d1, d2) < 0.0f) || (mismatch > MAX2(len1, len2)*2)); + return ((dot_v2v2(d1, d2) < 0.0f) || (mismatch > MAX2(len1, len2) * 2)); } /* ImagePaint Common */ static int imapaint_canvas_set(ImagePaintState *s, Image *ima) { - ImBuf *ibuf= BKE_image_get_ibuf(ima, s->sima? &s->sima->iuser: NULL); + ImBuf *ibuf = BKE_image_get_ibuf(ima, s->sima ? &s->sima->iuser : NULL); /* verify that we can paint and set canvas */ - if (ima==NULL) { + if (ima == NULL) { return 0; } else if (ima->packedfile && ima->rr) { s->warnpackedfile = ima->id.name + 2; return 0; } - else if (ibuf && ibuf->channels!=4) { + else if (ibuf && ibuf->channels != 4) { s->warnmultifile = ima->id.name + 2; return 0; } else if (!ibuf || !(ibuf->rect || ibuf->rect_float)) return 0; - s->image= ima; - s->canvas= ibuf; + s->image = ima; + s->canvas = ibuf; /* set clone canvas */ if (s->tool == PAINT_TOOL_CLONE) { - ima= s->brush->clone.image; - ibuf= BKE_image_get_ibuf(ima, s->sima? &s->sima->iuser: NULL); + ima = s->brush->clone.image; + ibuf = BKE_image_get_ibuf(ima, s->sima ? &s->sima->iuser : NULL); if (!ima || !ibuf || !(ibuf->rect || ibuf->rect_float)) return 0; - s->clonecanvas= ibuf; + s->clonecanvas = ibuf; /* temporarily add float rect for cloning */ if (s->canvas->rect_float && !s->clonecanvas->rect_float) { @@ -4500,7 +4500,7 @@ static int imapaint_canvas_set(ImagePaintState *s, Image *ima) SWAP(int, s->clonecanvas->profile, profile); IMB_float_from_rect(s->clonecanvas); - s->clonefreefloat= 1; + s->clonefreefloat = 1; SWAP(int, s->clonecanvas->profile, profile); } @@ -4519,16 +4519,16 @@ static void imapaint_canvas_free(ImagePaintState *s) static int imapaint_paint_sub_stroke(ImagePaintState *s, BrushPainter *painter, Image *image, short texpaint, float *uv, double time, int update, float pressure) { - ImBuf *ibuf= BKE_image_get_ibuf(image, s->sima? &s->sima->iuser: NULL); + ImBuf *ibuf = BKE_image_get_ibuf(image, s->sima ? &s->sima->iuser : NULL); float pos[2]; if (!ibuf) return 0; - pos[0] = uv[0]*ibuf->x; - pos[1] = uv[1]*ibuf->y; + pos[0] = uv[0] * ibuf->x; + pos[1] = uv[1] * ibuf->y; - brush_painter_require_imbuf(painter, ((ibuf->rect_float)? 1: 0), 0, 0); + brush_painter_require_imbuf(painter, ((ibuf->rect_float) ? 1 : 0), 0, 0); if (brush_painter_paint(painter, imapaint_paint_op, pos, time, pressure, s, ibuf->profile == IB_PROFILE_LINEAR_RGB)) { if (update) @@ -4553,7 +4553,7 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint ImBuf *ibuf; newimage = imapaint_face_image(s, newfaceindex); - ibuf= BKE_image_get_ibuf(newimage, s->sima? &s->sima->iuser: NULL); + ibuf = BKE_image_get_ibuf(newimage, s->sima ? &s->sima->iuser : NULL); if (ibuf && ibuf->rect) imapaint_pick_uv(s->scene, s->ob, newfaceindex, mval, newuv); @@ -4571,17 +4571,17 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint imapaint_pick_uv(s->scene, s->ob, newfaceindex, prevmval, bkuv); if (newimage == s->image) - breakstroke= texpaint_break_stroke(s->uv, fwuv, bkuv, newuv); + breakstroke = texpaint_break_stroke(s->uv, fwuv, bkuv, newuv); else - breakstroke= 1; + breakstroke = 1; } else - fwuv[0]= fwuv[1]= 0.0f; + fwuv[0] = fwuv[1] = 0.0f; if (breakstroke) { imapaint_pick_uv(s->scene, s->ob, s->faceindex, mval, fwuv); redraw |= imapaint_paint_sub_stroke(s, painter, s->image, texpaint, - fwuv, time, 1, pressure); + fwuv, time, 1, pressure); imapaint_clear_partial_redraw(); brush_painter_break_stroke(painter); } @@ -4594,10 +4594,10 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint /* paint in new image */ if (newimage) { if (breakstroke) - redraw|= imapaint_paint_sub_stroke(s, painter, newimage, - texpaint, bkuv, time, 0, pressure); - redraw|= imapaint_paint_sub_stroke(s, painter, newimage, texpaint, - newuv, time, 1, pressure); + redraw |= imapaint_paint_sub_stroke(s, painter, newimage, + texpaint, bkuv, time, 0, pressure); + redraw |= imapaint_paint_sub_stroke(s, painter, newimage, texpaint, + newuv, time, 1, pressure); } /* update state */ @@ -4609,7 +4609,7 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint else { UI_view2d_region_to_view(s->v2d, mval[0], mval[1], &newuv[0], &newuv[1]); redraw |= imapaint_paint_sub_stroke(s, painter, s->image, texpaint, newuv, - time, 1, pressure); + time, 1, pressure); } if (redraw) @@ -4622,16 +4622,16 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint static Brush *image_paint_brush(bContext *C) { - Scene *scene= CTX_data_scene(C); - ToolSettings *settings= scene->toolsettings; + Scene *scene = CTX_data_scene(C); + ToolSettings *settings = scene->toolsettings; return paint_brush(&settings->imapaint.paint); } static Brush *uv_sculpt_brush(bContext *C) { - Scene *scene= CTX_data_scene(C); - ToolSettings *settings= scene->toolsettings; + Scene *scene = CTX_data_scene(C); + ToolSettings *settings = scene->toolsettings; if (!settings->uvsculpt) return NULL; @@ -4649,12 +4649,12 @@ static int image_paint_poll(bContext *C) return 1; } else { - SpaceImage *sima= CTX_wm_space_image(C); + SpaceImage *sima = CTX_wm_space_image(C); if (sima) { - ARegion *ar= CTX_wm_region(C); + ARegion *ar = CTX_wm_region(C); - if ((sima->flag & SI_DRAWTOOL) && ar->regiontype==RGN_TYPE_WINDOW) + if ((sima->flag & SI_DRAWTOOL) && ar->regiontype == RGN_TYPE_WINDOW) return 1; } } @@ -4667,7 +4667,7 @@ static int uv_sculpt_brush_poll(bContext *C) BMEditMesh *em; int ret; Object *obedit = CTX_data_edit_object(C); - SpaceImage *sima= CTX_wm_space_image(C); + SpaceImage *sima = CTX_wm_space_image(C); Scene *scene = CTX_data_scene(C); ToolSettings *toolsettings = scene->toolsettings; @@ -4678,8 +4678,8 @@ static int uv_sculpt_brush_poll(bContext *C) ret = EDBM_mtexpoly_check(em); if (ret && sima) { - ARegion *ar= CTX_wm_region(C); - if ((toolsettings->use_uv_sculpt) && ar->regiontype==RGN_TYPE_WINDOW) + ARegion *ar = CTX_wm_region(C); + if ((toolsettings->use_uv_sculpt) && ar->regiontype == RGN_TYPE_WINDOW) return 1; } @@ -4696,7 +4696,7 @@ static int image_paint_3d_poll(bContext *C) static int image_paint_2d_clone_poll(bContext *C) { - Brush *brush= image_paint_brush(C); + Brush *brush = image_paint_brush(C); if (!CTX_wm_region_view3d(C) && image_paint_poll(C)) if (brush && (brush->imagepaint_tool == PAINT_TOOL_CLONE)) @@ -4740,22 +4740,22 @@ static void paint_redraw(bContext *C, ImagePaintState *s, int texpaint, int fina GPU_free_image(s->image); /* compositor listener deals with updating */ - WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, s->image); + WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, s->image); } else { if (!s->sima || !s->sima->lock) ED_region_tag_redraw(CTX_wm_region(C)); else - WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, s->image); + WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, s->image); } } /* initialize project paint settings from context */ static void project_state_init(bContext *C, Object *ob, ProjPaintState *ps) { - Scene *scene= CTX_data_scene(C); - ToolSettings *settings= scene->toolsettings; - Brush *brush= paint_brush(&settings->imapaint.paint); + Scene *scene = CTX_data_scene(C); + ToolSettings *settings = scene->toolsettings; + Brush *brush = paint_brush(&settings->imapaint.paint); /* brush */ ps->brush = brush; @@ -4767,12 +4767,12 @@ static void project_state_init(bContext *C, Object *ob, ProjPaintState *ps) /* these can be NULL */ - ps->v3d= CTX_wm_view3d(C); - ps->rv3d= CTX_wm_region_view3d(C); - ps->ar= CTX_wm_region(C); + ps->v3d = CTX_wm_view3d(C); + ps->rv3d = CTX_wm_region_view3d(C); + ps->ar = CTX_wm_region(C); - ps->scene= scene; - ps->ob= ob; /* allow override of active object */ + ps->scene = scene; + ps->ob = ob; /* allow override of active object */ /* setup projection painting data */ ps->do_backfacecull = (settings->imapaint.flag & IMAGEPAINT_PROJECT_BACKFACE) ? 0 : 1; @@ -4796,37 +4796,37 @@ static void project_state_init(bContext *C, Object *ob, ProjPaintState *ps) ps->normal_angle = (ps->normal_angle_inner + 90.0f) * 0.5f; } else { - ps->normal_angle_inner= ps->normal_angle= settings->imapaint.normal_angle; + ps->normal_angle_inner = ps->normal_angle = settings->imapaint.normal_angle; } - ps->normal_angle_inner *= (float)(M_PI_2 / 90); - ps->normal_angle *= (float)(M_PI_2 / 90); + ps->normal_angle_inner *= (float)(M_PI_2 / 90); + ps->normal_angle *= (float)(M_PI_2 / 90); ps->normal_angle_range = ps->normal_angle - ps->normal_angle_inner; if (ps->normal_angle_range <= 0.0f) - ps->do_mask_normal = 0; /* no need to do blending */ + ps->do_mask_normal = 0; /* no need to do blending */ } static void paint_brush_init_tex(Brush *brush) { /* init mtex nodes */ if (brush) { - MTex *mtex= &brush->mtex; + MTex *mtex = &brush->mtex; if (mtex->tex && mtex->tex->nodetree) - ntreeTexBeginExecTree(mtex->tex->nodetree, 1); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(mtex->tex->nodetree, 1); /* has internal flag to detect it only does it once */ } } static int texture_paint_init(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - ToolSettings *settings= scene->toolsettings; - Brush *brush= paint_brush(&settings->imapaint.paint); - PaintOperation *pop= MEM_callocN(sizeof(PaintOperation), "PaintOperation"); /* caller frees */ + Scene *scene = CTX_data_scene(C); + ToolSettings *settings = scene->toolsettings; + Brush *brush = paint_brush(&settings->imapaint.paint); + PaintOperation *pop = MEM_callocN(sizeof(PaintOperation), "PaintOperation"); /* caller frees */ - pop->first= 1; - op->customdata= pop; + pop->first = 1; + op->customdata = pop; /* XXX: Soften tool does not support projection painting atm, so just disable * projection for this brush */ @@ -4837,27 +4837,27 @@ static int texture_paint_init(bContext *C, wmOperator *op) /* initialize from context */ if (CTX_wm_region_view3d(C)) { - pop->mode= PAINT_MODE_3D; + pop->mode = PAINT_MODE_3D; if (!(settings->imapaint.flag & IMAGEPAINT_PROJECT_DISABLE)) - pop->mode= PAINT_MODE_3D_PROJECT; + pop->mode = PAINT_MODE_3D_PROJECT; else view3d_set_viewcontext(C, &pop->vc); } else { - pop->s.sima= CTX_wm_space_image(C); - pop->s.v2d= &CTX_wm_region(C)->v2d; + pop->s.sima = CTX_wm_space_image(C); + pop->s.v2d = &CTX_wm_region(C)->v2d; } - pop->s.scene= scene; - pop->s.screen= CTX_wm_screen(C); + pop->s.scene = scene; + pop->s.screen = CTX_wm_screen(C); pop->s.brush = brush; pop->s.tool = brush->imagepaint_tool; if (pop->mode == PAINT_MODE_3D && (pop->s.tool == PAINT_TOOL_CLONE)) pop->s.tool = PAINT_TOOL_DRAW; pop->s.blend = brush->blend; - pop->orig_brush_size= brush_size(scene, brush); + pop->orig_brush_size = brush_size(scene, brush); if (pop->mode != PAINT_MODE_2D) { Object *ob = OBACT; @@ -4872,7 +4872,7 @@ static int texture_paint_init(bContext *C, wmOperator *op) /* for non prohect paint we need */ /* fill in derived mesh */ - if (ob->derivedFinal && CustomData_has_layer( &ob->derivedFinal->faceData, CD_MTFACE)) { + if (ob->derivedFinal && CustomData_has_layer(&ob->derivedFinal->faceData, CD_MTFACE)) { pop->s.dm = ob->derivedFinal; pop->s.dm_release = FALSE; } @@ -4891,7 +4891,7 @@ static int texture_paint_init(bContext *C, wmOperator *op) } pop->s.dm_mface = pop->s.dm->getTessFaceArray(pop->s.dm); - pop->s.dm_mtface= pop->s.dm->getTessFaceDataArray(pop->s.dm, CD_MTFACE); + pop->s.dm_mtface = pop->s.dm->getTessFaceDataArray(pop->s.dm, CD_MTFACE); pop->s.dm_totface = pop->s.dm->getNumTessFaces(pop->s.dm); } else { @@ -4917,9 +4917,9 @@ static int texture_paint_init(bContext *C, wmOperator *op) paint_brush_init_tex(pop->ps.brush); - pop->ps.source= PROJ_SRC_VIEW; + pop->ps.source = PROJ_SRC_VIEW; - if (pop->ps.ob==NULL || !(pop->ps.ob->lay & pop->ps.v3d->lay)) + if (pop->ps.ob == NULL || !(pop->ps.ob->lay & pop->ps.v3d->lay)) return 0; /* Don't allow brush size below 2 */ @@ -4929,23 +4929,23 @@ static int texture_paint_init(bContext *C, wmOperator *op) /* allocate and initialize spacial data structures */ project_paint_begin(&pop->ps); - if (pop->ps.dm==NULL) + if (pop->ps.dm == NULL) return 0; } settings->imapaint.flag |= IMAGEPAINT_DRAWING; undo_paint_push_begin(UNDO_PAINT_IMAGE, op->type->name, - image_undo_restore, image_undo_free); + image_undo_restore, image_undo_free); /* create painter */ - pop->painter= brush_painter_new(scene, pop->s.brush); + pop->painter = brush_painter_new(scene, pop->s.brush); return 1; } static void paint_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) { - PaintOperation *pop= op->customdata; + PaintOperation *pop = op->customdata; float time, mousef[2]; float pressure; int mouse[2], redraw; @@ -4953,8 +4953,8 @@ static void paint_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) RNA_float_get_array(itemptr, "mouse", mousef); mouse[0] = (int)(mousef[0]); mouse[1] = (int)(mousef[1]); - time= RNA_float_get(itemptr, "time"); - pressure= RNA_float_get(itemptr, "pressure"); + time = RNA_float_get(itemptr, "time"); + pressure = RNA_float_get(itemptr, "pressure"); if (pop->first) project_paint_begin_clone(&pop->ps, mouse); @@ -4963,27 +4963,27 @@ static void paint_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) view3d_operator_needs_opengl(C); if (pop->mode == PAINT_MODE_3D_PROJECT) { - redraw= project_paint_stroke(&pop->ps, pop->painter, pop->prevmouse, mouse, time, pressure); - pop->prevmouse[0]= mouse[0]; - pop->prevmouse[1]= mouse[1]; + redraw = project_paint_stroke(&pop->ps, pop->painter, pop->prevmouse, mouse, time, pressure); + pop->prevmouse[0] = mouse[0]; + pop->prevmouse[1] = mouse[1]; } else { - redraw= imapaint_paint_stroke(&pop->vc, &pop->s, pop->painter, pop->mode == PAINT_MODE_3D, pop->prevmouse, mouse, time, pressure); - pop->prevmouse[0]= mouse[0]; - pop->prevmouse[1]= mouse[1]; + redraw = imapaint_paint_stroke(&pop->vc, &pop->s, pop->painter, pop->mode == PAINT_MODE_3D, pop->prevmouse, mouse, time, pressure); + pop->prevmouse[0] = mouse[0]; + pop->prevmouse[1] = mouse[1]; } if (redraw) paint_redraw(C, &pop->s, pop->mode == PAINT_MODE_3D, 0); - pop->first= 0; + pop->first = 0; } static void paint_brush_exit_tex(Brush *brush) { if (brush) { - MTex *mtex= &brush->mtex; + MTex *mtex = &brush->mtex; if (mtex->tex && mtex->tex->nodetree) ntreeTexEndExecTree(mtex->tex->nodetree->execdata, 1); } @@ -4991,9 +4991,9 @@ static void paint_brush_exit_tex(Brush *brush) static void paint_exit(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - ToolSettings *settings= scene->toolsettings; - PaintOperation *pop= op->customdata; + Scene *scene = CTX_data_scene(C); + ToolSettings *settings = scene->toolsettings; + PaintOperation *pop = op->customdata; if (pop->timer) WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), pop->timer); @@ -5050,34 +5050,34 @@ static int paint_exec(bContext *C, wmOperator *op) static void paint_apply_event(bContext *C, wmOperator *op, wmEvent *event) { const Scene *scene = CTX_data_scene(C); - PaintOperation *pop= op->customdata; + PaintOperation *pop = op->customdata; wmTabletData *wmtab; PointerRNA itemptr; float pressure, mousef[2]; double time; int tablet; - time= PIL_check_seconds_timer(); + time = PIL_check_seconds_timer(); - tablet= 0; - pop->s.blend= pop->s.brush->blend; + tablet = 0; + pop->s.blend = pop->s.brush->blend; if (event->custom == EVT_DATA_TABLET) { - wmtab= event->customdata; + wmtab = event->customdata; - tablet= (wmtab->Active != EVT_TABLET_NONE); - pressure= wmtab->Pressure; + tablet = (wmtab->Active != EVT_TABLET_NONE); + pressure = wmtab->Pressure; if (wmtab->Active == EVT_TABLET_ERASER) - pop->s.blend= IMB_BLEND_ERASE_ALPHA; + pop->s.blend = IMB_BLEND_ERASE_ALPHA; } else { /* otherwise airbrush becomes 1.0 pressure instantly */ - pressure= pop->prev_pressure ? pop->prev_pressure : 1.0f; + pressure = pop->prev_pressure ? pop->prev_pressure : 1.0f; } if (pop->first) { - pop->prevmouse[0]= event->mval[0]; - pop->prevmouse[1]= event->mval[1]; - pop->starttime= time; + pop->prevmouse[0] = event->mval[0]; + pop->prevmouse[1] = event->mval[1]; + pop->starttime = time; /* special exception here for too high pressure values on first touch in * windows for some tablets, then we just skip first touch .. */ @@ -5104,7 +5104,7 @@ static void paint_apply_event(bContext *C, wmOperator *op, wmEvent *event) /* apply */ paint_apply(C, op, &itemptr); - pop->prev_pressure= pressure; + pop->prev_pressure = pressure; } static int paint_invoke(bContext *C, wmOperator *op, wmEvent *event) @@ -5118,20 +5118,20 @@ static int paint_invoke(bContext *C, wmOperator *op, wmEvent *event) paint_apply_event(C, op, event); - pop= op->customdata; + pop = op->customdata; WM_event_add_modal_handler(C, op); if (pop->s.brush->flag & BRUSH_AIRBRUSH) - pop->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); + pop->timer = WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); return OPERATOR_RUNNING_MODAL; } static int paint_modal(bContext *C, wmOperator *op, wmEvent *event) { - PaintOperation *pop= op->customdata; + PaintOperation *pop = op->customdata; - switch(event->type) { + switch (event->type) { case LEFTMOUSE: case MIDDLEMOUSE: case RIGHTMOUSE: // XXX hardcoded @@ -5171,7 +5171,7 @@ void PAINT_OT_image_paint(wmOperatorType *ot) ot->poll = image_paint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_BLOCKING; + ot->flag = OPTYPE_REGISTER | OPTYPE_BLOCKING; /* properties */ RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", ""); @@ -5179,11 +5179,11 @@ void PAINT_OT_image_paint(wmOperatorType *ot) int get_imapaint_zoom(bContext *C, float *zoomx, float *zoomy) { - RegionView3D *rv3d= CTX_wm_region_view3d(C); + RegionView3D *rv3d = CTX_wm_region_view3d(C); if (!rv3d) { - SpaceImage *sima= CTX_wm_space_image(C); - ARegion *ar= CTX_wm_region(C); + SpaceImage *sima = CTX_wm_space_image(C); + ARegion *ar = CTX_wm_region(C); ED_space_image_zoom(sima, ar, zoomx, zoomy); @@ -5202,22 +5202,22 @@ static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata) #define PX_SIZE_FADE_MAX 12.0f #define PX_SIZE_FADE_MIN 4.0f - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); //Brush *brush= image_paint_brush(C); - Paint *paint= paint_get_active(scene); - Brush *brush= paint_brush(paint); + Paint *paint = paint_get_active(scene); + Brush *brush = paint_brush(paint); if (paint && brush && paint->flags & PAINT_SHOW_BRUSH) { ToolSettings *ts; float zoomx, zoomy; - const float size= (float)brush_size(scene, brush); + const float size = (float)brush_size(scene, brush); short use_zoom; float pixel_size; - float alpha= 0.5f; + float alpha = 0.5f; ts = scene->toolsettings; - use_zoom= get_imapaint_zoom(C, &zoomx, &zoomy) - && !(ts->use_uv_sculpt && (scene->basact->object->mode == OB_MODE_EDIT)); + use_zoom = get_imapaint_zoom(C, &zoomx, &zoomy) + && !(ts->use_uv_sculpt && (scene->basact->object->mode == OB_MODE_EDIT)); if (use_zoom) { pixel_size = MAX2(size * zoomx, size * zoomy); @@ -5243,11 +5243,11 @@ static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata) glScalef(zoomx, zoomy, 1.0f); glColor4f(brush->add_col[0], brush->add_col[1], brush->add_col[2], alpha); - glEnable( GL_LINE_SMOOTH ); + glEnable(GL_LINE_SMOOTH); glEnable(GL_BLEND); - glutil_draw_lined_arc(0, (float)(M_PI*2.0), size, 40); + glutil_draw_lined_arc(0, (float)(M_PI * 2.0), size, 40); glDisable(GL_BLEND); - glDisable( GL_LINE_SMOOTH ); + glDisable(GL_LINE_SMOOTH); glPopMatrix(); } @@ -5257,16 +5257,16 @@ static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata) static void toggle_paint_cursor(bContext *C, int enable) { - wmWindowManager *wm= CTX_wm_manager(C); + wmWindowManager *wm = CTX_wm_manager(C); Scene *scene = CTX_data_scene(C); - ToolSettings *settings= scene->toolsettings; + ToolSettings *settings = scene->toolsettings; if (settings->imapaint.paintcursor && !enable) { WM_paint_cursor_end(wm, settings->imapaint.paintcursor); settings->imapaint.paintcursor = NULL; } else if (enable) - settings->imapaint.paintcursor= WM_paint_cursor_activate(wm, image_paint_poll, brush_drawcursor, NULL); + settings->imapaint.paintcursor = WM_paint_cursor_activate(wm, image_paint_poll, brush_drawcursor, NULL); } /* enable the paint cursor if it isn't already. @@ -5280,8 +5280,8 @@ void ED_space_image_paint_update(wmWindowManager *wm, ToolSettings *settings) if (!imapaint->paintcursor) { imapaint->paintcursor = - WM_paint_cursor_activate(wm, image_paint_poll, - brush_drawcursor, NULL); + WM_paint_cursor_activate(wm, image_paint_poll, + brush_drawcursor, NULL); } } @@ -5299,7 +5299,7 @@ void ED_space_image_uv_sculpt_update(wmWindowManager *wm, ToolSettings *settings paint_init(&settings->uvsculpt->paint, PAINT_CURSOR_SCULPT); WM_paint_cursor_activate(wm, uv_sculpt_brush_poll, - brush_drawcursor, NULL); + brush_drawcursor, NULL); } else { if (settings->uvsculpt) @@ -5315,7 +5315,7 @@ typedef struct GrabClone { static void grab_clone_apply(bContext *C, wmOperator *op) { - Brush *brush= image_paint_brush(C); + Brush *brush = image_paint_brush(C); float delta[2]; RNA_float_get_array(op->ptr, "delta", delta); @@ -5332,14 +5332,14 @@ static int grab_clone_exec(bContext *C, wmOperator *op) static int grab_clone_invoke(bContext *C, wmOperator *op, wmEvent *event) { - Brush *brush= image_paint_brush(C); + Brush *brush = image_paint_brush(C); GrabClone *cmv; - cmv= MEM_callocN(sizeof(GrabClone), "GrabClone"); + cmv = MEM_callocN(sizeof(GrabClone), "GrabClone"); copy_v2_v2(cmv->startoffset, brush->clone.offset); - cmv->startx= event->x; - cmv->starty= event->y; - op->customdata= cmv; + cmv->startx = event->x; + cmv->starty = event->y; + op->customdata = cmv; WM_event_add_modal_handler(C, op); @@ -5348,13 +5348,13 @@ static int grab_clone_invoke(bContext *C, wmOperator *op, wmEvent *event) static int grab_clone_modal(bContext *C, wmOperator *op, wmEvent *event) { - Brush *brush= image_paint_brush(C); - ARegion *ar= CTX_wm_region(C); - GrabClone *cmv= op->customdata; + Brush *brush = image_paint_brush(C); + ARegion *ar = CTX_wm_region(C); + GrabClone *cmv = op->customdata; float startfx, startfy, fx, fy, delta[2]; - int xmin= ar->winrct.xmin, ymin= ar->winrct.ymin; + int xmin = ar->winrct.xmin, ymin = ar->winrct.ymin; - switch(event->type) { + switch (event->type) { case LEFTMOUSE: case MIDDLEMOUSE: case RIGHTMOUSE: // XXX hardcoded @@ -5365,8 +5365,8 @@ static int grab_clone_modal(bContext *C, wmOperator *op, wmEvent *event) UI_view2d_region_to_view(&ar->v2d, cmv->startx - xmin, cmv->starty - ymin, &startfx, &startfy); UI_view2d_region_to_view(&ar->v2d, event->x - xmin, event->y - ymin, &fx, &fy); - delta[0]= fx - startfx; - delta[1]= fy - startfy; + delta[0] = fx - startfx; + delta[1] = fy - startfy; RNA_float_set_array(op->ptr, "delta", delta); copy_v2_v2(brush->clone.offset, cmv->startoffset); @@ -5398,7 +5398,7 @@ void PAINT_OT_grab_clone(wmOperatorType *ot) ot->poll = image_paint_2d_clone_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING; /* properties */ RNA_def_float_vector(ot->srna, "delta", 2, NULL, -FLT_MAX, FLT_MAX, "Delta", "Delta offset of clone image in 0.0..1.0 coordinates", -1.0f, 1.0f); @@ -5408,15 +5408,15 @@ void PAINT_OT_grab_clone(wmOperatorType *ot) static int sample_color_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Brush *brush= image_paint_brush(C); - ARegion *ar= CTX_wm_region(C); + Scene *scene = CTX_data_scene(C); + Brush *brush = image_paint_brush(C); + ARegion *ar = CTX_wm_region(C); int location[2]; RNA_int_get_array(op->ptr, "location", location); paint_sample_color(scene, ar, location[0], location[1]); - WM_event_add_notifier(C, NC_BRUSH|NA_EDITED, brush); + WM_event_add_notifier(C, NC_BRUSH | NA_EDITED, brush); return OPERATOR_FINISHED; } @@ -5433,7 +5433,7 @@ static int sample_color_invoke(bContext *C, wmOperator *op, wmEvent *event) static int sample_color_modal(bContext *C, wmOperator *op, wmEvent *event) { - switch(event->type) { + switch (event->type) { case LEFTMOUSE: case RIGHTMOUSE: // XXX hardcoded return OPERATOR_FINISHED; @@ -5453,7 +5453,7 @@ static int image_paint_sample_color_poll(bContext *C) if (CTX_wm_view3d(C)) { Object *obact = CTX_data_active_object(C); if (obact && obact->mode & OB_MODE_TEXTURE_PAINT) { - Mesh *me= get_mesh(obact); + Mesh *me = get_mesh(obact); if (me) { return !(me->editflag & ME_EDIT_PAINT_MASK); } @@ -5479,7 +5479,7 @@ void PAINT_OT_sample_color(wmOperatorType *ot) ot->poll = image_paint_sample_color_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_int_vector(ot->srna, "location", 2, NULL, 0, INT_MAX, "Location", "Cursor location in region coordinates", 0, 16384); @@ -5489,9 +5489,9 @@ void PAINT_OT_sample_color(wmOperatorType *ot) static int set_clone_cursor_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - View3D *v3d= CTX_wm_view3d(C); - float *cursor= give_cursor(scene, v3d); + Scene *scene = CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); + float *cursor = give_cursor(scene, v3d); RNA_float_get_array(op->ptr, "location", cursor); @@ -5502,9 +5502,9 @@ static int set_clone_cursor_exec(bContext *C, wmOperator *op) static int set_clone_cursor_invoke(bContext *C, wmOperator *op, wmEvent *event) { - Scene *scene= CTX_data_scene(C); - View3D *v3d= CTX_wm_view3d(C); - ARegion *ar= CTX_wm_region(C); + Scene *scene = CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); + ARegion *ar = CTX_wm_region(C); float location[3]; view3d_operator_needs_opengl(C); @@ -5529,7 +5529,7 @@ void PAINT_OT_clone_cursor_set(wmOperatorType *ot) ot->poll = image_paint_3d_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_float_vector(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "Cursor location in world space coordinates", -10000.0f, 10000.0f); @@ -5541,7 +5541,7 @@ static int texture_paint_toggle_poll(bContext *C) { if (CTX_data_edit_object(C)) return 0; - if (CTX_data_active_object(C)==NULL) + if (CTX_data_active_object(C) == NULL) return 0; return 1; @@ -5549,11 +5549,11 @@ static int texture_paint_toggle_poll(bContext *C) static int texture_paint_toggle_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Object *ob= CTX_data_active_object(C); - Mesh *me= NULL; + Scene *scene = CTX_data_scene(C); + Object *ob = CTX_data_active_object(C); + Mesh *me = NULL; - if (ob==NULL) + if (ob == NULL) return OPERATOR_CANCELLED; if (object_data_is_libdata(ob)) { @@ -5561,7 +5561,7 @@ static int texture_paint_toggle_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - me= get_mesh(ob); + me = get_mesh(ob); if (!(ob->mode & OB_MODE_TEXTURE_PAINT) && !me) { BKE_report(op->reports, RPT_ERROR, "Can only enter texture paint mode for mesh objects"); @@ -5580,9 +5580,9 @@ static int texture_paint_toggle_exec(bContext *C, wmOperator *op) else { ob->mode |= OB_MODE_TEXTURE_PAINT; - if (me->mtface==NULL) - me->mtface= CustomData_add_layer(&me->fdata, CD_MTFACE, CD_DEFAULT, - NULL, me->totface); + if (me->mtface == NULL) + me->mtface = CustomData_add_layer(&me->fdata, CD_MTFACE, CD_DEFAULT, + NULL, me->totface); paint_init(&scene->toolsettings->imapaint.paint, PAINT_CURSOR_TEXTURE_PAINT); @@ -5594,7 +5594,7 @@ static int texture_paint_toggle_exec(bContext *C, wmOperator *op) } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE, scene); return OPERATOR_FINISHED; } @@ -5610,7 +5610,7 @@ void PAINT_OT_texture_paint_toggle(wmOperatorType *ot) ot->poll = texture_paint_toggle_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int texture_paint_poll(bContext *C) @@ -5649,37 +5649,37 @@ int mask_paint_poll(bContext *C) /* use project paint to re-apply an image */ static int texture_paint_camera_project_exec(bContext *C, wmOperator *op) { - Image *image= BLI_findlink(&CTX_data_main(C)->image, RNA_enum_get(op->ptr, "image")); - Scene *scene= CTX_data_scene(C); - ProjPaintState ps= {NULL}; + Image *image = BLI_findlink(&CTX_data_main(C)->image, RNA_enum_get(op->ptr, "image")); + Scene *scene = CTX_data_scene(C); + ProjPaintState ps = {NULL}; int orig_brush_size; IDProperty *idgroup; - IDProperty *view_data= NULL; + IDProperty *view_data = NULL; project_state_init(C, OBACT, &ps); - if (ps.ob==NULL || ps.ob->type != OB_MESH) { + if (ps.ob == NULL || ps.ob->type != OB_MESH) { BKE_report(op->reports, RPT_ERROR, "No active mesh object"); return OPERATOR_CANCELLED; } - if (image==NULL) { + if (image == NULL) { BKE_report(op->reports, RPT_ERROR, "Image could not be found"); return OPERATOR_CANCELLED; } - ps.reproject_image= image; - ps.reproject_ibuf= BKE_image_get_ibuf(image, NULL); + ps.reproject_image = image; + ps.reproject_ibuf = BKE_image_get_ibuf(image, NULL); - if (ps.reproject_ibuf==NULL || ps.reproject_ibuf->rect==NULL) { + if (ps.reproject_ibuf == NULL || ps.reproject_ibuf->rect == NULL) { BKE_report(op->reports, RPT_ERROR, "Image data could not be found"); return OPERATOR_CANCELLED; } - idgroup= IDP_GetProperties(&image->id, 0); + idgroup = IDP_GetProperties(&image->id, 0); if (idgroup) { - view_data= IDP_GetPropertyTypeFromGroup(idgroup, PROJ_VIEW_DATA_ID, IDP_ARRAY); + view_data = IDP_GetPropertyTypeFromGroup(idgroup, PROJ_VIEW_DATA_ID, IDP_ARRAY); /* type check to make sure its ok */ if (view_data->len != PROJ_VIEW_DATA_SIZE || view_data->subtype != IDP_FLOAT) { @@ -5690,52 +5690,52 @@ static int texture_paint_camera_project_exec(bContext *C, wmOperator *op) if (view_data) { /* image has stored view projection info */ - ps.source= PROJ_SRC_IMAGE_VIEW; + ps.source = PROJ_SRC_IMAGE_VIEW; } else { - ps.source= PROJ_SRC_IMAGE_CAM; + ps.source = PROJ_SRC_IMAGE_CAM; - if (scene->camera==NULL) { + if (scene->camera == NULL) { BKE_report(op->reports, RPT_ERROR, "No active camera set"); return OPERATOR_CANCELLED; } } /* override */ - ps.is_texbrush= 0; - ps.is_airbrush= 1; - orig_brush_size= brush_size(scene, ps.brush); + ps.is_texbrush = 0; + ps.is_airbrush = 1; + orig_brush_size = brush_size(scene, ps.brush); brush_set_size(scene, ps.brush, 32); /* cover the whole image */ - ps.tool= PAINT_TOOL_DRAW; /* so pixels are initialized with minimal info */ + ps.tool = PAINT_TOOL_DRAW; /* so pixels are initialized with minimal info */ scene->toolsettings->imapaint.flag |= IMAGEPAINT_DRAWING; undo_paint_push_begin(UNDO_PAINT_IMAGE, op->type->name, - image_undo_restore, image_undo_free); + image_undo_restore, image_undo_free); /* allocate and initialize spacial data structures */ project_paint_begin(&ps); - if (ps.dm==NULL) { + if (ps.dm == NULL) { brush_set_size(scene, ps.brush, orig_brush_size); return OPERATOR_CANCELLED; } else { - float pos[2]= {0.0, 0.0}; - float lastpos[2]= {0.0, 0.0}; + float pos[2] = {0.0, 0.0}; + float lastpos[2] = {0.0, 0.0}; int a; - for (a=0; a < ps.image_tot; a++) + for (a = 0; a < ps.image_tot; a++) partial_redraw_array_init(ps.projImages[a].partRedrawRect); project_paint_op(&ps, NULL, lastpos, pos); project_image_refresh_tagged(&ps); - for (a=0; a < ps.image_tot; a++) { + for (a = 0; a < ps.image_tot; a++) { GPU_free_image(ps.projImages[a].ima); - WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ps.projImages[a].ima); + WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, ps.projImages[a].ima); } } @@ -5761,9 +5761,9 @@ void PAINT_OT_project_image(wmOperatorType *ot) ot->exec = texture_paint_camera_project_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - prop= RNA_def_enum(ot->srna, "image", DummyRNA_NULL_items, 0, "Image", ""); + prop = RNA_def_enum(ot->srna, "image", DummyRNA_NULL_items, 0, "Image", ""); RNA_def_enum_funcs(prop, RNA_image_itemf); ot->prop = prop; } @@ -5774,21 +5774,21 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op) ImBuf *ibuf; char filename[FILE_MAX]; - Scene *scene= CTX_data_scene(C); - ToolSettings *settings= scene->toolsettings; - int w= settings->imapaint.screen_grab_size[0]; - int h= settings->imapaint.screen_grab_size[1]; + Scene *scene = CTX_data_scene(C); + ToolSettings *settings = scene->toolsettings; + int w = settings->imapaint.screen_grab_size[0]; + int h = settings->imapaint.screen_grab_size[1]; int maxsize; - char err_out[256]= "unknown"; + char err_out[256] = "unknown"; RNA_string_get(op->ptr, "filepath", filename); glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxsize); - if (w > maxsize) w= maxsize; - if (h > maxsize) h= maxsize; + if (w > maxsize) w = maxsize; + if (h > maxsize) h = maxsize; - ibuf= ED_view3d_draw_offscreen_imbuf(CTX_data_scene(C), CTX_wm_view3d(C), CTX_wm_region(C), w, h, IB_rect, FALSE, err_out); + ibuf = ED_view3d_draw_offscreen_imbuf(CTX_data_scene(C), CTX_wm_view3d(C), CTX_wm_region(C), w, h, IB_rect, FALSE, err_out); if (!ibuf) { /* Mostly happens when OpenGL offscreen buffer was failed to create, */ /* but could be other reasons. Should be handled in the future. nazgul */ @@ -5796,16 +5796,16 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - image= BKE_add_image_imbuf(ibuf); + image = BKE_add_image_imbuf(ibuf); if (image) { /* now for the trickyness. store the view projection here! * re-projection will reuse this */ - View3D *v3d= CTX_wm_view3d(C); - RegionView3D *rv3d= CTX_wm_region_view3d(C); + View3D *v3d = CTX_wm_view3d(C); + RegionView3D *rv3d = CTX_wm_region_view3d(C); IDPropertyTemplate val; - IDProperty *idgroup= IDP_GetProperties(&image->id, 1); + IDProperty *idgroup = IDP_GetProperties(&image->id, 1); IDProperty *view_data; int orth; float *array; @@ -5814,11 +5814,11 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op) val.array.type = IDP_FLOAT; view_data = IDP_New(IDP_ARRAY, &val, PROJ_VIEW_DATA_ID); - array= (float *)IDP_Array(view_data); - memcpy(array, rv3d->winmat, sizeof(rv3d->winmat)); array += sizeof(rv3d->winmat)/sizeof(float); - memcpy(array, rv3d->viewmat, sizeof(rv3d->viewmat)); array += sizeof(rv3d->viewmat)/sizeof(float); - orth= project_paint_view_clip(v3d, rv3d, &array[0], &array[1]); - array[2]= orth ? 1.0f : 0.0f; /* using float for a bool is dodgy but since its an extra member in the array... easier then adding a single bool prop */ + array = (float *)IDP_Array(view_data); + memcpy(array, rv3d->winmat, sizeof(rv3d->winmat)); array += sizeof(rv3d->winmat) / sizeof(float); + memcpy(array, rv3d->viewmat, sizeof(rv3d->viewmat)); array += sizeof(rv3d->viewmat) / sizeof(float); + orth = project_paint_view_clip(v3d, rv3d, &array[0], &array[1]); + array[2] = orth ? 1.0f : 0.0f; /* using float for a bool is dodgy but since its an extra member in the array... easier then adding a single bool prop */ IDP_AddToGroup(idgroup, view_data); diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index 046a3b374ba..3bc3c7a9224 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -83,23 +83,23 @@ static void BRUSH_OT_add(wmOperatorType *ot) ot->exec = brush_add_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int brush_scale_size_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); - Paint *paint= paint_get_active(scene); - struct Brush *brush= paint_brush(paint); + Paint *paint = paint_get_active(scene); + struct Brush *brush = paint_brush(paint); // Object *ob= CTX_data_active_object(C); - float scalar= RNA_float_get(op->ptr, "scalar"); + float scalar = RNA_float_get(op->ptr, "scalar"); if (brush) { // pixel radius { - const int old_size= brush_size(scene, brush); - int size= (int)(scalar*old_size); + const int old_size = brush_size(scene, brush); + int size = (int)(scalar * old_size); if (old_size == size) { if (scalar > 1) { @@ -116,10 +116,10 @@ static int brush_scale_size_exec(bContext *C, wmOperator *op) // unprojected radius { - float unprojected_radius= scalar*brush_unprojected_radius(scene, brush); + float unprojected_radius = scalar * brush_unprojected_radius(scene, brush); if (unprojected_radius < 0.001f) // XXX magic number - unprojected_radius= 0.001f; + unprojected_radius = 0.001f; brush_set_unprojected_radius(scene, brush, unprojected_radius); } @@ -139,7 +139,7 @@ static void BRUSH_OT_scale_size(wmOperatorType *ot) ot->exec = brush_scale_size_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_float(ot->srna, "scalar", 1, 0, 2, "Scalar", "Factor to scale brush size by", 0, 2); } @@ -166,7 +166,7 @@ static void PAINT_OT_vertex_color_set(wmOperatorType *ot) ot->poll = vertex_paint_mode_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int brush_reset_exec(bContext *C, wmOperator *UNUSED(op)) @@ -195,7 +195,7 @@ static void BRUSH_OT_reset(wmOperatorType *ot) ot->exec = brush_reset_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int brush_tool(const Brush *brush, size_t tool_offset) @@ -208,16 +208,17 @@ static Brush *brush_tool_cycle(Main *bmain, Brush *brush_orig, const int tool, c { struct Brush *brush; - if (!brush_orig && !(brush_orig= bmain->brush.first)) { + if (!brush_orig && !(brush_orig = bmain->brush.first)) { return NULL; } /* get the next brush with the active tool */ - for (brush= brush_orig->id.next ? brush_orig->id.next : bmain->brush.first; - brush != brush_orig; - brush= brush->id.next ? brush->id.next : bmain->brush.first) { + for (brush = brush_orig->id.next ? brush_orig->id.next : bmain->brush.first; + brush != brush_orig; + brush = brush->id.next ? brush->id.next : bmain->brush.first) + { if ((brush->ob_mode & ob_mode) && - (brush_tool(brush, tool_offset) == tool)) { + (brush_tool(brush, tool_offset) == tool)) { return brush; } } @@ -227,13 +228,13 @@ static Brush *brush_tool_cycle(Main *bmain, Brush *brush_orig, const int tool, c static int brush_generic_tool_set(Main *bmain, Paint *paint, const int tool, const size_t tool_offset, const int ob_mode) { - struct Brush *brush, *brush_orig= paint_brush(paint); + struct Brush *brush, *brush_orig = paint_brush(paint); - brush= brush_tool_cycle(bmain, brush_orig, tool, tool_offset, ob_mode); + brush = brush_tool_cycle(bmain, brush_orig, tool, tool_offset, ob_mode); if (brush) { paint_brush_set(paint, brush); - WM_main_add_notifier(NC_BRUSH|NA_EDITED, brush); + WM_main_add_notifier(NC_BRUSH | NA_EDITED, brush); return OPERATOR_FINISHED; } else { @@ -246,46 +247,46 @@ static int brush_generic_tool_set(Main *bmain, Paint *paint, const int tool, con static int brush_select_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - ToolSettings *toolsettings= CTX_data_tool_settings(C); - Paint *paint= NULL; - int tool, paint_mode= RNA_enum_get(op->ptr, "paint_mode"); + Main *bmain = CTX_data_main(C); + ToolSettings *toolsettings = CTX_data_tool_settings(C); + Paint *paint = NULL; + int tool, paint_mode = RNA_enum_get(op->ptr, "paint_mode"); size_t tool_offset; if (paint_mode == OB_MODE_ACTIVE) { /* select current paint mode */ paint_mode = CTX_data_active_object(C)->mode & - (OB_MODE_SCULPT| - OB_MODE_VERTEX_PAINT| - OB_MODE_WEIGHT_PAINT| - OB_MODE_TEXTURE_PAINT); + (OB_MODE_SCULPT | + OB_MODE_VERTEX_PAINT | + OB_MODE_WEIGHT_PAINT | + OB_MODE_TEXTURE_PAINT); } - switch(paint_mode) { - case OB_MODE_SCULPT: - paint= &toolsettings->sculpt->paint; - tool_offset= offsetof(Brush, sculpt_tool); - tool= RNA_enum_get(op->ptr, "sculpt_tool"); - break; - case OB_MODE_VERTEX_PAINT: - paint= &toolsettings->vpaint->paint; - tool_offset= offsetof(Brush, vertexpaint_tool); - tool= RNA_enum_get(op->ptr, "vertex_paint_tool"); - break; - case OB_MODE_WEIGHT_PAINT: - paint= &toolsettings->wpaint->paint; - /* vertexpaint_tool is used for weight paint mode */ - tool_offset= offsetof(Brush, vertexpaint_tool); - tool= RNA_enum_get(op->ptr, "weight_paint_tool"); - break; - case OB_MODE_TEXTURE_PAINT: - paint= &toolsettings->imapaint.paint; - tool_offset= offsetof(Brush, imagepaint_tool); - tool= RNA_enum_get(op->ptr, "texture_paint_tool"); - break; - default: - /* invalid paint mode */ - return OPERATOR_CANCELLED; + switch (paint_mode) { + case OB_MODE_SCULPT: + paint = &toolsettings->sculpt->paint; + tool_offset = offsetof(Brush, sculpt_tool); + tool = RNA_enum_get(op->ptr, "sculpt_tool"); + break; + case OB_MODE_VERTEX_PAINT: + paint = &toolsettings->vpaint->paint; + tool_offset = offsetof(Brush, vertexpaint_tool); + tool = RNA_enum_get(op->ptr, "vertex_paint_tool"); + break; + case OB_MODE_WEIGHT_PAINT: + paint = &toolsettings->wpaint->paint; + /* vertexpaint_tool is used for weight paint mode */ + tool_offset = offsetof(Brush, vertexpaint_tool); + tool = RNA_enum_get(op->ptr, "weight_paint_tool"); + break; + case OB_MODE_TEXTURE_PAINT: + paint = &toolsettings->imapaint.paint; + tool_offset = offsetof(Brush, imagepaint_tool); + tool = RNA_enum_get(op->ptr, "texture_paint_tool"); + break; + default: + /* invalid paint mode */ + return OPERATOR_CANCELLED; } return brush_generic_tool_set(bmain, paint, tool, tool_offset, paint_mode); @@ -299,7 +300,8 @@ static void PAINT_OT_brush_select(wmOperatorType *ot) {OB_MODE_VERTEX_PAINT, "VERTEX_PAINT", ICON_VPAINT_HLT, "Vertex Paint", ""}, {OB_MODE_WEIGHT_PAINT, "WEIGHT_PAINT", ICON_WPAINT_HLT, "Weight Paint", ""}, {OB_MODE_TEXTURE_PAINT, "TEXTURE_PAINT", ICON_TPAINT_HLT, "Texture Paint", ""}, - {0, NULL, 0, NULL, NULL}}; + {0, NULL, 0, NULL, NULL} + }; /* identifiers */ ot->name = "Brush Select"; @@ -310,7 +312,7 @@ static void PAINT_OT_brush_select(wmOperatorType *ot) ot->exec = brush_select_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* props */ RNA_def_enum(ot->srna, "paint_mode", paint_mode_items, OB_MODE_ACTIVE, "Paint Mode", ""); @@ -321,28 +323,28 @@ static void PAINT_OT_brush_select(wmOperatorType *ot) } static wmKeyMapItem *keymap_brush_select(wmKeyMap *keymap, int paint_mode, - int tool, int keymap_type, - int keymap_modifier) + int tool, int keymap_type, + int keymap_modifier) { wmKeyMapItem *kmi; kmi = WM_keymap_add_item(keymap, "PAINT_OT_brush_select", - keymap_type, KM_PRESS, keymap_modifier, 0); + keymap_type, KM_PRESS, keymap_modifier, 0); RNA_enum_set(kmi->ptr, "paint_mode", paint_mode); - switch(paint_mode) { - case OB_MODE_SCULPT: - RNA_enum_set(kmi->ptr, "sculpt_tool", tool); - break; - case OB_MODE_VERTEX_PAINT: - RNA_enum_set(kmi->ptr, "vertex_paint_tool", tool); - break; - case OB_MODE_WEIGHT_PAINT: - RNA_enum_set(kmi->ptr, "weight_paint_tool", tool); - break; - case OB_MODE_TEXTURE_PAINT: - RNA_enum_set(kmi->ptr, "texture_paint_tool", tool); - break; + switch (paint_mode) { + case OB_MODE_SCULPT: + RNA_enum_set(kmi->ptr, "sculpt_tool", tool); + break; + case OB_MODE_VERTEX_PAINT: + RNA_enum_set(kmi->ptr, "vertex_paint_tool", tool); + break; + case OB_MODE_WEIGHT_PAINT: + RNA_enum_set(kmi->ptr, "weight_paint_tool", tool); + break; + case OB_MODE_TEXTURE_PAINT: + RNA_enum_set(kmi->ptr, "texture_paint_tool", tool); + break; } return kmi; @@ -351,12 +353,12 @@ static wmKeyMapItem *keymap_brush_select(wmKeyMap *keymap, int paint_mode, static int brush_uv_sculpt_tool_set_exec(bContext *C, wmOperator *op) { Brush *brush; - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); ToolSettings *ts = scene->toolsettings; ts->uv_sculpt_tool = RNA_enum_get(op->ptr, "tool"); brush = ts->uvsculpt->paint.brush; /* To update toolshelf */ - WM_event_add_notifier(C, NC_BRUSH|NA_EDITED, brush); + WM_event_add_notifier(C, NC_BRUSH | NA_EDITED, brush); return OPERATOR_FINISHED; } @@ -444,7 +446,7 @@ static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *mode) /* index 0-9 (zero key is tenth), shift key for index 10-19 */ for (i = 0; i < 20; i++) { kmi = WM_keymap_add_item(keymap, "BRUSH_OT_active_index_set", - ZEROKEY + ((i + 1) % 10), KM_PRESS, i < 10 ? 0 : KM_SHIFT, 0); + ZEROKEY + ((i + 1) % 10), KM_PRESS, i < 10 ? 0 : KM_SHIFT, 0); RNA_string_set(kmi->ptr, "mode", mode); RNA_int_set(kmi->ptr, "index", i); } @@ -458,7 +460,7 @@ static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *UNUSED(path RNA_float_set(kmi->ptr, "scalar", 0.9); kmi = WM_keymap_add_item(keymap, "BRUSH_OT_scale_size", RIGHTBRACKETKEY, KM_PRESS, 0, 0); - RNA_float_set(kmi->ptr, "scalar", 10.0/9.0); // 1.1111.... + RNA_float_set(kmi->ptr, "scalar", 10.0 / 9.0); // 1.1111.... } typedef enum { @@ -468,7 +470,7 @@ typedef enum { } RCFlags; static void set_brush_rc_path(PointerRNA *ptr, const char *brush_path, - const char *output_name, const char *input_name) + const char *output_name, const char *input_name) { char *path; @@ -478,8 +480,8 @@ static void set_brush_rc_path(PointerRNA *ptr, const char *brush_path, } static void set_brush_rc_props(PointerRNA *ptr, const char *paint, - const char *prop, const char *secondary_prop, - RCFlags flags) + const char *prop, const char *secondary_prop, + RCFlags flags) { const char *ups_path = "tool_settings.unified_paint_settings"; char *brush_path; @@ -512,7 +514,7 @@ static void set_brush_rc_props(PointerRNA *ptr, const char *paint, } static void ed_keymap_paint_brush_radial_control(wmKeyMap *keymap, const char *paint, - RCFlags flags) + RCFlags flags) { wmKeyMapItem *kmi; @@ -561,8 +563,8 @@ void ED_keymap_paint(wmKeyConfig *keyconf) /* Partial visibility, sculpt-only for now */ paint_partial_visibility_keys(keymap); - for (i=0; i<=5; i++) - RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i); + for (i = 0; i <= 5; i++) + RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i); /* multires switch */ kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEUPKEY, KM_PRESS, 0, 0); @@ -605,7 +607,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "PAINT_OT_sample_color", RIGHTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, - "PAINT_OT_vertex_color_set",KKEY, KM_PRESS, KM_SHIFT, 0); + "PAINT_OT_vertex_color_set", KKEY, KM_PRESS, KM_SHIFT, 0); ed_keymap_paint_brush_switch(keymap, "vertex_paint"); ed_keymap_paint_brush_size(keymap, "tool_settings.vertex_paint.brush.size"); @@ -625,7 +627,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "PAINT_OT_weight_sample_group", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, - "PAINT_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0); + "PAINT_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0); ed_keymap_paint_brush_switch(keymap, "weight_paint"); ed_keymap_paint_brush_size(keymap, "tool_settings.weight_paint.brush.size"); @@ -649,7 +651,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "VIEW3D_OT_select_border", BKEY, KM_PRESS, 0, 0); kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0); RNA_boolean_set(kmi->ptr, "deselect", FALSE); - kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT|KM_CTRL, 0); + kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0); RNA_boolean_set(kmi->ptr, "deselect", TRUE); WM_keymap_add_item(keymap, "VIEW3D_OT_select_circle", CKEY, KM_PRESS, 0, 0); @@ -664,7 +666,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) ed_keymap_paint_brush_switch(keymap, "image_paint"); ed_keymap_paint_brush_size(keymap, "tool_settings.image_paint.brush.size"); - ed_keymap_paint_brush_radial_control(keymap, "image_paint", RC_COLOR|RC_ZOOM); + ed_keymap_paint_brush_radial_control(keymap, "image_paint", RC_COLOR | RC_ZOOM); kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */ RNA_string_set(kmi->ptr, "data_path", "image_paint_object.data.use_paint_mask"); diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index 28fee887cd8..fb640346a99 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -98,7 +98,7 @@ static void paint_draw_smooth_stroke(bContext *C, int x, int y, void *customdata if (stroke && brush && (brush->flag & BRUSH_SMOOTH_STROKE)) { ARegion *ar = CTX_wm_region(C); sdrawline(x, y, (int)stroke->last_mouse_position[0] - ar->winrct.xmin, - (int)stroke->last_mouse_position[1] - ar->winrct.ymin); + (int)stroke->last_mouse_position[1] - ar->winrct.ymin); } glDisable(GL_BLEND); @@ -113,7 +113,7 @@ static float event_tablet_data(wmEvent *event, int *pen_flip) float pressure = 1; if (event->custom == EVT_DATA_TABLET) { - wmTabletData *wmtab= event->customdata; + wmTabletData *wmtab = event->customdata; erasor = (wmtab->Active == EVT_TABLET_ERASER); pressure = (wmtab->Active != EVT_TABLET_NONE) ? wmtab->Pressure : 1; @@ -197,7 +197,7 @@ static int paint_smooth_stroke(PaintStroke *stroke, float output[2], wmEvent *ev /* If the mouse is moving within the radius of the last move, * don't update the mouse position. This allows sharp turns. */ - if (dx*dx + dy*dy < stroke->brush->smooth_stroke_radius * stroke->brush->smooth_stroke_radius) + if (dx * dx + dy * dy < stroke->brush->smooth_stroke_radius * stroke->brush->smooth_stroke_radius) return 0; output[0] = event->x * v + stroke->last_mouse_position[0] * u; @@ -228,14 +228,14 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const const Scene *scene = CTX_data_scene(C); int steps; int i; - float pressure= 1.0f; + float pressure = 1.0f; /* XXX mysterious :) what has 'use size' do with this here... if you don't check for it, pressure fails */ if (brush_use_size_pressure(scene, stroke->brush)) pressure = event_tablet_data(event, NULL); if (pressure > FLT_EPSILON) { - scale = (brush_size(scene, stroke->brush)*pressure*stroke->brush->spacing/50.0f) / length; + scale = (brush_size(scene, stroke->brush) * pressure * stroke->brush->spacing / 50.0f) / length; if (scale > FLT_EPSILON) { mul_v2_fl(vec, scale); @@ -256,10 +256,10 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const /**** Public API ****/ PaintStroke *paint_stroke_new(bContext *C, - StrokeGetLocation get_location, - StrokeTestStart test_start, - StrokeUpdateStep update_step, - StrokeDone done, int event_type) + StrokeGetLocation get_location, + StrokeTestStart test_start, + StrokeUpdateStep update_step, + StrokeDone done, int event_type) { PaintStroke *stroke = MEM_callocN(sizeof(PaintStroke), "PaintStroke"); @@ -271,7 +271,7 @@ PaintStroke *paint_stroke_new(bContext *C, stroke->test_start = test_start; stroke->update_step = update_step; stroke->done = done; - stroke->event_type= event_type; /* for modal, return event */ + stroke->event_type = event_type; /* for modal, return event */ return stroke; } @@ -293,7 +293,7 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) { PaintStroke *stroke = op->customdata; float mouse[2]; - int first= 0; + int first = 0; // let NDOF motion pass through to the 3D view so we can paint and rotate simultaneously! // this isn't perfect... even when an extra MOUSEMOVE is spoofed, the stroke discards it @@ -309,13 +309,13 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) if (stroke->stroke_started) { stroke->smooth_stroke_cursor = - WM_paint_cursor_activate(CTX_wm_manager(C), paint_poll, paint_draw_smooth_stroke, stroke); + WM_paint_cursor_activate(CTX_wm_manager(C), paint_poll, paint_draw_smooth_stroke, stroke); if (stroke->brush->flag & BRUSH_AIRBRUSH) stroke->timer = WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, stroke->brush->rate); } - first= 1; + first = 1; //ED_region_tag_redraw(ar); } @@ -331,7 +331,7 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) MEM_freeN(stroke); return OPERATOR_FINISHED; } - else if ( (first) || + else if ((first) || (ELEM(event->type, MOUSEMOVE, INBETWEEN_MOUSEMOVE)) || (event->type == TIMER && (event->customdata == stroke->timer)) ) { @@ -347,7 +347,7 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) } } else { - ;//ED_region_tag_redraw(ar); + ; //ED_region_tag_redraw(ar); } } } @@ -355,10 +355,10 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) /* we want the stroke to have the first daub at the start location * instead of waiting till we have moved the space distance */ if (first && - stroke->stroke_started && - paint_space_stroke_enabled(stroke->brush) && - !(stroke->brush->flag & BRUSH_ANCHORED) && - !(stroke->brush->flag & BRUSH_SMOOTH_STROKE)) + stroke->stroke_started && + paint_space_stroke_enabled(stroke->brush) && + !(stroke->brush->flag & BRUSH_ANCHORED) && + !(stroke->brush->flag & BRUSH_SMOOTH_STROKE)) { paint_brush_stroke_add_step(C, op, event, mouse); } @@ -374,7 +374,7 @@ int paint_stroke_exec(bContext *C, wmOperator *op) if (stroke->stroke_started == 0) { /* XXX stroke->last_mouse_position is unset, this may cause problems */ stroke->test_start(C, op, NULL); - stroke->stroke_started= 1; + stroke->stroke_started = 1; } RNA_BEGIN(op->ptr, itemptr, "stroke") { @@ -424,6 +424,6 @@ int paint_poll(bContext *C) Object *ob = CTX_data_active_object(C); return p && ob && paint_brush(p) && - CTX_wm_area(C)->spacetype == SPACE_VIEW3D && - CTX_wm_region(C)->regiontype == RGN_TYPE_WINDOW; + CTX_wm_area(C)->spacetype == SPACE_VIEW3D && + CTX_wm_region(C)->regiontype == RGN_TYPE_WINDOW; } diff --git a/source/blender/editors/sculpt_paint/paint_undo.c b/source/blender/editors/sculpt_paint/paint_undo.c index 8406c8b20af..fbf83dd8df5 100644 --- a/source/blender/editors/sculpt_paint/paint_undo.c +++ b/source/blender/editors/sculpt_paint/paint_undo.c @@ -45,7 +45,7 @@ #include "paint_intern.h" -#define MAXUNDONAME 64 +#define MAXUNDONAME 64 typedef struct UndoElem { struct UndoElem *next, *prev; @@ -94,31 +94,31 @@ static void undo_stack_push_begin(UndoStack *stack, const char *name, UndoRestor /* remove all undos after (also when stack->current==NULL) */ while (stack->elems.last != stack->current) { - uel= stack->elems.last; + uel = stack->elems.last; undo_elem_free(stack, uel); BLI_freelinkN(&stack->elems, uel); } /* make new */ - stack->current= uel= MEM_callocN(sizeof(UndoElem), "undo file"); - uel->restore= restore; - uel->free= free; + stack->current = uel = MEM_callocN(sizeof(UndoElem), "undo file"); + uel->restore = restore; + uel->free = free; BLI_addtail(&stack->elems, uel); /* name can be a dynamic string */ BLI_strncpy(uel->name, name, sizeof(uel->name)); /* limit amount to the maximum amount*/ - nr= 0; - uel= stack->elems.last; + nr = 0; + uel = stack->elems.last; while (uel) { nr++; - if (nr==U.undosteps) break; - uel= uel->prev; + if (nr == U.undosteps) break; + uel = uel->prev; } if (uel) { - while (stack->elems.first!=uel) { - UndoElem *first= stack->elems.first; + while (stack->elems.first != uel) { + UndoElem *first = stack->elems.first; undo_elem_free(stack, first); BLI_freelinkN(&stack->elems, first); } @@ -132,19 +132,19 @@ static void undo_stack_push_end(UndoStack *stack) if (U.undomemory != 0) { /* limit to maximum memory (afterwards, we can't know in advance) */ - totmem= 0; - maxmem= ((uintptr_t)U.undomemory)*1024*1024; + totmem = 0; + maxmem = ((uintptr_t)U.undomemory) * 1024 * 1024; - uel= stack->elems.last; + uel = stack->elems.last; while (uel) { - totmem+= uel->undosize; - if (totmem>maxmem) break; - uel= uel->prev; + totmem += uel->undosize; + if (totmem > maxmem) break; + uel = uel->prev; } if (uel) { - while (stack->elems.first!=uel) { - UndoElem *first= stack->elems.first; + while (stack->elems.first != uel) { + UndoElem *first = stack->elems.first; undo_elem_free(stack, first); BLI_freelinkN(&stack->elems, first); } @@ -156,24 +156,24 @@ static int undo_stack_step(bContext *C, UndoStack *stack, int step, const char * { UndoElem *undo; - if (step==1) { - if (stack->current==NULL); + if (step == 1) { + if (stack->current == NULL) ; else { if (!name || strcmp(stack->current->name, name) == 0) { if (G.f & G_DEBUG) printf("undo %s\n", stack->current->name); undo_restore(C, stack, stack->current); - stack->current= stack->current->prev; + stack->current = stack->current->prev; return 1; } } } - else if (step==-1) { - if ((stack->current!=NULL && stack->current->next==NULL) || stack->elems.first==NULL); + else if (step == -1) { + if ((stack->current != NULL && stack->current->next == NULL) || stack->elems.first == NULL) ; else { if (!name || strcmp(stack->current->name, name) == 0) { - undo= (stack->current && stack->current->next)? stack->current->next: stack->elems.first; + undo = (stack->current && stack->current->next) ? stack->current->next : stack->elems.first; undo_restore(C, stack, undo); - stack->current= undo; + stack->current = undo; if (G.f & G_DEBUG) printf("redo %s\n", undo->name); return 1; } @@ -187,11 +187,11 @@ static void undo_stack_free(UndoStack *stack) { UndoElem *uel; - for (uel=stack->elems.first; uel; uel=uel->next) + for (uel = stack->elems.first; uel; uel = uel->next) undo_elem_free(stack, uel); BLI_freelistN(&stack->elems); - stack->current= NULL; + stack->current = NULL; } /* Exported Functions */ @@ -249,13 +249,13 @@ int ED_undo_paint_valid(int type, const char *name) UndoStack *stack; if (type == UNDO_PAINT_IMAGE) - stack= &ImageUndoStack; + stack = &ImageUndoStack; else if (type == UNDO_PAINT_MESH) - stack= &MeshUndoStack; + stack = &MeshUndoStack; else return 0; - if (stack->current==NULL); + if (stack->current == NULL) ; else { if (name && strcmp(stack->current->name, name) == 0) return 1; diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c index eac0434d255..6a31e96b51b 100644 --- a/source/blender/editors/sculpt_paint/paint_utils.c +++ b/source/blender/editors/sculpt_paint/paint_utils.c @@ -71,11 +71,11 @@ * its minimum and maximum corners) into a screen-space rectangle, * returns zero if the result is empty */ int paint_convert_bb_to_rect(rcti *rect, - const float bb_min[3], - const float bb_max[3], - const ARegion *ar, - RegionView3D *rv3d, - Object *ob) + const float bb_min[3], + const float bb_max[3], + const ARegion *ar, + RegionView3D *rv3d, + Object *ob) { float projection_mat[4][4]; int i, j, k; @@ -115,10 +115,10 @@ int paint_convert_bb_to_rect(rcti *rect, * screen_rect from screen into object-space (essentially converting a * 2D screens-space bounding box into four 3D planes) */ void paint_calc_redraw_planes(float planes[4][4], - const ARegion *ar, - RegionView3D *rv3d, - Object *ob, - const rcti *screen_rect) + const ARegion *ar, + RegionView3D *rv3d, + Object *ob, + const rcti *screen_rect) { BoundBox bb; bglMats mats; @@ -145,14 +145,14 @@ void projectf(bglMats *mats, const float v[3], float p[2]) { double ux, uy, uz; - gluProject(v[0],v[1],v[2], mats->modelview, mats->projection, - (GLint *)mats->viewport, &ux, &uy, &uz); - p[0]= ux; - p[1]= uy; + gluProject(v[0], v[1], v[2], mats->modelview, mats->projection, + (GLint *)mats->viewport, &ux, &uy, &uz); + p[0] = ux; + p[1] = uy; } float paint_calc_object_space_radius(ViewContext *vc, const float center[3], - float pixel_radius) + float pixel_radius) { Object *ob = vc->obact; float delta[3], scale, loc[3]; @@ -162,17 +162,17 @@ float paint_calc_object_space_radius(ViewContext *vc, const float center[3], initgrabz(vc->rv3d, loc[0], loc[1], loc[2]); - mval_f[0]= pixel_radius; - mval_f[1]= 0.0f; + mval_f[0] = pixel_radius; + mval_f[1] = 0.0f; ED_view3d_win_to_delta(vc->ar, mval_f, delta); - scale= fabsf(mat4_to_scale(ob->obmat)); - scale= (scale == 0.0f)? 1.0f: scale; + scale = fabsf(mat4_to_scale(ob->obmat)); + scale = (scale == 0.0f) ? 1.0f : scale; - return len_v3(delta)/scale; + return len_v3(delta) / scale; } -float paint_get_tex_pixel(Brush* br, float u, float v) +float paint_get_tex_pixel(Brush *br, float u, float v) { TexResult texres; float co[3]; @@ -186,7 +186,7 @@ float paint_get_tex_pixel(Brush* br, float u, float v) hasrgb = multitex_ext(br->mtex.tex, co, NULL, NULL, 0, &texres); if (hasrgb & TEX_RGB) - texres.tin = (0.35f*texres.tr + 0.45f*texres.tg + 0.2f*texres.tb)*texres.ta; + texres.tin = (0.35f * texres.tr + 0.45f * texres.tg + 0.2f * texres.tb) * texres.ta; return texres.tin; } @@ -196,7 +196,7 @@ float paint_get_tex_pixel(Brush* br, float u, float v) static void imapaint_project(Object *ob, float model[][4], float proj[][4], const float co[3], float pco[4]) { copy_v3_v3(pco, co); - pco[3]= 1.0f; + pco[3] = 1.0f; mul_m4_v3(ob->obmat, pco); mul_m4_v3(model, pco); @@ -225,16 +225,16 @@ static void imapaint_tri_weights(Object *ob, imapaint_project(ob, model, proj, v3, pv3); /* do inverse view mapping, see gluProject man page */ - h[0]= (co[0] - view[0])*2.0f/view[2] - 1; - h[1]= (co[1] - view[1])*2.0f/view[3] - 1; - h[2]= 1.0f; + h[0] = (co[0] - view[0]) * 2.0f / view[2] - 1; + h[1] = (co[1] - view[1]) * 2.0f / view[3] - 1; + h[2] = 1.0f; /* solve for (w1,w2,w3)/perspdiv in: * h * perspdiv = Project * Model * (w1 * v1 + w2 * v2 + w3 * v3) */ - wmat[0][0]= pv1[0]; wmat[1][0]= pv2[0]; wmat[2][0]= pv3[0]; - wmat[0][1]= pv1[1]; wmat[1][1]= pv2[1]; wmat[2][1]= pv3[1]; - wmat[0][2]= pv1[3]; wmat[1][2]= pv2[3]; wmat[2][2]= pv3[3]; + wmat[0][0] = pv1[0]; wmat[1][0] = pv2[0]; wmat[2][0] = pv3[0]; + wmat[0][1] = pv1[1]; wmat[1][1] = pv2[1]; wmat[2][1] = pv3[1]; + wmat[0][2] = pv1[3]; wmat[1][2] = pv2[3]; wmat[2][2] = pv3[3]; invert_m3_m3(invwmat, wmat); mul_m3_v3(invwmat, h); @@ -242,9 +242,9 @@ static void imapaint_tri_weights(Object *ob, copy_v3_v3(w, h); /* w is still divided by perspdiv, make it sum to one */ - divw= w[0] + w[1] + w[2]; + divw = w[0] + w[1] + w[2]; if (divw != 0.0f) { - mul_v3_fl(w, 1.0f/divw); + mul_v3_fl(w, 1.0f / divw); } } @@ -264,7 +264,7 @@ void imapaint_pick_uv(Scene *scene, Object *ob, unsigned int faceindex, const in /* test all faces in the derivedmesh with the original index of the picked face */ for (a = 0; a < numfaces; a++) { - findex= index ? index[a]: a; + findex = index ? index[a] : a; if (findex == faceindex) { dm->getTessFace(dm, a, &mf); @@ -275,36 +275,36 @@ void imapaint_pick_uv(Scene *scene, Object *ob, unsigned int faceindex, const in if (mf.v4) dm->getVert(dm, mf.v4, &mv[3]); - tf= &tface[a]; + tf = &tface[a]; - p[0]= xy[0]; - p[1]= xy[1]; + p[0] = xy[0]; + p[1] = xy[1]; if (mf.v4) { /* the triangle with the largest absolute values is the one * with the most negative weights */ imapaint_tri_weights(ob, mv[0].co, mv[1].co, mv[3].co, p, w); - absw= fabs(w[0]) + fabs(w[1]) + fabs(w[2]); + absw = fabs(w[0]) + fabs(w[1]) + fabs(w[2]); if (absw < minabsw) { - uv[0]= tf->uv[0][0]*w[0] + tf->uv[1][0]*w[1] + tf->uv[3][0]*w[2]; - uv[1]= tf->uv[0][1]*w[0] + tf->uv[1][1]*w[1] + tf->uv[3][1]*w[2]; + uv[0] = tf->uv[0][0] * w[0] + tf->uv[1][0] * w[1] + tf->uv[3][0] * w[2]; + uv[1] = tf->uv[0][1] * w[0] + tf->uv[1][1] * w[1] + tf->uv[3][1] * w[2]; minabsw = absw; } imapaint_tri_weights(ob, mv[1].co, mv[2].co, mv[3].co, p, w); - absw= fabs(w[0]) + fabs(w[1]) + fabs(w[2]); + absw = fabs(w[0]) + fabs(w[1]) + fabs(w[2]); if (absw < minabsw) { - uv[0]= tf->uv[1][0]*w[0] + tf->uv[2][0]*w[1] + tf->uv[3][0]*w[2]; - uv[1]= tf->uv[1][1]*w[0] + tf->uv[2][1]*w[1] + tf->uv[3][1]*w[2]; + uv[0] = tf->uv[1][0] * w[0] + tf->uv[2][0] * w[1] + tf->uv[3][0] * w[2]; + uv[1] = tf->uv[1][1] * w[0] + tf->uv[2][1] * w[1] + tf->uv[3][1] * w[2]; minabsw = absw; } } else { imapaint_tri_weights(ob, mv[0].co, mv[1].co, mv[2].co, p, w); - absw= fabs(w[0]) + fabs(w[1]) + fabs(w[2]); + absw = fabs(w[0]) + fabs(w[1]) + fabs(w[2]); if (absw < minabsw) { - uv[0]= tf->uv[0][0]*w[0] + tf->uv[1][0]*w[1] + tf->uv[2][0]*w[2]; - uv[1]= tf->uv[0][1]*w[0] + tf->uv[1][1]*w[1] + tf->uv[2][1]*w[2]; + uv[0] = tf->uv[0][0] * w[0] + tf->uv[1][0] * w[1] + tf->uv[2][0] * w[2]; + uv[1] = tf->uv[0][1] * w[0] + tf->uv[1][1] * w[1] + tf->uv[2][1] * w[2]; minabsw = absw; } } @@ -333,7 +333,7 @@ int imapaint_pick_face(ViewContext *vc, const int mval[2], unsigned int *index, } /* used for both 3d view and image window */ -void paint_sample_color(Scene *scene, ARegion *ar, int x, int y) /* frontbuf */ +void paint_sample_color(Scene *scene, ARegion *ar, int x, int y) /* frontbuf */ { Brush *br = paint_brush(paint_get_active(scene)); unsigned int col; @@ -343,15 +343,15 @@ void paint_sample_color(Scene *scene, ARegion *ar, int x, int y) /* frontbuf */ CLAMP(y, 0, ar->winy); glReadBuffer(GL_FRONT); - glReadPixels(x+ar->winrct.xmin, y+ar->winrct.ymin, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &col); + glReadPixels(x + ar->winrct.xmin, y + ar->winrct.ymin, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &col); glReadBuffer(GL_BACK); cp = (char *)&col; if (br) { - br->rgb[0]= cp[0]/255.0f; - br->rgb[1]= cp[1]/255.0f; - br->rgb[2]= cp[2]/255.0f; + br->rgb[0] = cp[0] / 255.0f; + br->rgb[1] = cp[1] / 255.0f; + br->rgb[2] = cp[2] / 255.0f; } } @@ -388,7 +388,7 @@ void BRUSH_OT_curve_preset(wmOperatorType *ot) ot->exec = brush_curve_preset_exec; ot->poll = brush_curve_preset_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "shape", prop_shape_items, CURVE_PRESET_SMOOTH, "Mode", ""); } @@ -411,12 +411,12 @@ void PAINT_OT_face_select_linked(wmOperatorType *ot) ot->exec = paint_select_linked_exec; ot->poll = facemask_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int paint_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent *event) { - int mode= RNA_boolean_get(op->ptr, "extend") ? 1:0; + int mode = RNA_boolean_get(op->ptr, "extend") ? 1 : 0; paintface_select_linked(C, CTX_data_active_object(C), event->mval, mode); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -431,7 +431,7 @@ void PAINT_OT_face_select_linked_pick(wmOperatorType *ot) ot->invoke = paint_select_linked_pick_invoke; ot->poll = facemask_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend the existing selection"); } @@ -439,7 +439,7 @@ void PAINT_OT_face_select_linked_pick(wmOperatorType *ot) static int face_select_all_exec(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); paintface_deselect_all_visible(ob, RNA_enum_get(op->ptr, "action"), TRUE); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -455,7 +455,7 @@ void PAINT_OT_face_select_all(wmOperatorType *ot) ot->exec = face_select_all_exec; ot->poll = facemask_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; WM_operator_properties_select_all(ot); } @@ -463,7 +463,7 @@ void PAINT_OT_face_select_all(wmOperatorType *ot) static int vert_select_all_exec(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); paintvert_deselect_all_visible(ob, RNA_enum_get(op->ptr, "action"), TRUE); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -479,14 +479,14 @@ void PAINT_OT_vert_select_all(wmOperatorType *ot) ot->exec = vert_select_all_exec; ot->poll = vert_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; WM_operator_properties_select_all(ot); } static int vert_select_inverse_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); paintvert_deselect_all_visible(ob, SEL_INVERT, TRUE); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -501,11 +501,11 @@ void PAINT_OT_vert_select_inverse(wmOperatorType *ot) ot->exec = vert_select_inverse_exec; ot->poll = vert_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int face_select_inverse_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); paintface_deselect_all_visible(ob, SEL_INVERT, TRUE); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -521,13 +521,13 @@ void PAINT_OT_face_select_inverse(wmOperatorType *ot) ot->exec = face_select_inverse_exec; ot->poll = facemask_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int face_select_hide_exec(bContext *C, wmOperator *op) { - const int unselected= RNA_boolean_get(op->ptr, "unselected"); - Object *ob= CTX_data_active_object(C); + const int unselected = RNA_boolean_get(op->ptr, "unselected"); + Object *ob = CTX_data_active_object(C); paintface_hide(ob, unselected); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -542,14 +542,14 @@ void PAINT_OT_face_select_hide(wmOperatorType *ot) ot->exec = face_select_hide_exec; ot->poll = facemask_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects"); } static int face_select_reveal_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); paintface_reveal(ob); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; @@ -564,7 +564,7 @@ void PAINT_OT_face_select_reveal(wmOperatorType *ot) ot->exec = face_select_reveal_exec; ot->poll = facemask_paint_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects"); } diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 54f4d0c1a26..ae0c19d7245 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -130,14 +130,15 @@ int vertex_paint_mode_poll(bContext *C) int vertex_paint_poll(bContext *C) { if (vertex_paint_mode_poll(C) && - paint_brush(&CTX_data_tool_settings(C)->vpaint->paint)) { + paint_brush(&CTX_data_tool_settings(C)->vpaint->paint)) + { ScrArea *sa = CTX_wm_area(C); if (sa->spacetype == SPACE_VIEW3D) { ARegion *ar = CTX_wm_region(C); if (ar->regiontype == RGN_TYPE_WINDOW) return 1; - } } + } return 0; } @@ -321,7 +322,7 @@ void do_shared_vertexcol(Mesh *me, int do_tessface) } } -static void make_vertexcol(Object *ob) /* single ob */ +static void make_vertexcol(Object *ob) /* single ob */ { Mesh *me; if (!ob || ob->id.lib) return; @@ -387,7 +388,7 @@ static int wpaint_mirror_vgroup_ensure(Object *ob, const int vgroup_active) } if (curdef == NULL) { - int olddef = ob->actdef; /* tsk, ED_vgroup_add sets the active defgroup */ + int olddef = ob->actdef; /* tsk, ED_vgroup_add sets the active defgroup */ curdef = ED_vgroup_add_name(ob, name); ob->actdef = olddef; } @@ -418,7 +419,7 @@ static void copy_vpaint_prev(VPaint *vp, unsigned int *lcol, int tot) } -static void copy_wpaint_prev (VPaint *wp, MDeformVert *dverts, int dcount) +static void copy_wpaint_prev(VPaint *wp, MDeformVert *dverts, int dcount) { if (wp->wpaint_prev) { free_dverts(wp->wpaint_prev, wp->tot); @@ -427,9 +428,9 @@ static void copy_wpaint_prev (VPaint *wp, MDeformVert *dverts, int dcount) if (dverts && dcount) { - wp->wpaint_prev = MEM_mallocN (sizeof(MDeformVert) * dcount, "wpaint prev"); + wp->wpaint_prev = MEM_mallocN(sizeof(MDeformVert) * dcount, "wpaint prev"); wp->tot = dcount; - copy_dverts (wp->wpaint_prev, dverts, dcount); + copy_dverts(wp->wpaint_prev, dverts, dcount); } } @@ -445,7 +446,7 @@ void vpaint_fill(Object *ob, unsigned int paintcol) if (me == NULL || me->totpoly == 0) return; if (!me->mloopcol) make_vertexcol(ob); - if (!me->mloopcol) return; /* possible we can't make mcol's */ + if (!me->mloopcol) return; /* possible we can't make mcol's */ selected = (me->editflag & ME_EDIT_PAINT_MASK); @@ -512,7 +513,7 @@ void wpaint_fill(VPaint *wp, Object *ob, float paintweight) dw_prev->weight = dw->weight; /* set the undo weight */ dw->weight = paintweight; - if (me->editflag & ME_EDIT_MIRROR_X) { /* x mirror painting */ + if (me->editflag & ME_EDIT_MIRROR_X) { /* x mirror painting */ int j = mesh_get_x_mirror_vert(ob, vidx); if (j >= 0) { /* copy, not paint again */ @@ -568,7 +569,7 @@ void vpaint_dogamma(Scene *scene) for (a = 0; a < 256; a++) { fac = ((float)a) / 255.0; - fac = vp->mul * pow( fac, igam); + fac = vp->mul * pow(fac, igam); temp = 255.9 * fac; @@ -581,9 +582,9 @@ void vpaint_dogamma(Scene *scene) cp = (unsigned char *)me->mcol; while (a--) { - cp[1] = gamtab[ cp[1] ]; - cp[2] = gamtab[ cp[2] ]; - cp[3] = gamtab[ cp[3] ]; + cp[1] = gamtab[cp[1]]; + cp[2] = gamtab[cp[2]]; + cp[3] = gamtab[cp[3]]; cp += 4; } @@ -799,13 +800,13 @@ static unsigned int vpaint_blend(VPaint *vp, unsigned int col, unsigned int colo co = (char *)&colorig; for (a = 0; a < 4; a++) { - if ( ct[a] < co[a] ) { - if ( cp[a] < ct[a] ) cp[a] = ct[a]; - else if ( cp[a] > co[a] ) cp[a] = co[a]; + if (ct[a] < co[a]) { + if (cp[a] < ct[a]) cp[a] = ct[a]; + else if (cp[a] > co[a]) cp[a] = co[a]; } else { - if ( cp[a] < co[a] ) cp[a] = co[a]; - else if ( cp[a] > ct[a] ) cp[a] = ct[a]; + if (cp[a] < co[a]) cp[a] = co[a]; + else if (cp[a] > ct[a]) cp[a] = ct[a]; } } } @@ -853,7 +854,7 @@ static int sample_backbuf_area(ViewContext *vc, int *indexar, int totface, int x /* whats _dl mean? */ static float calc_vp_strength_dl(VPaint *vp, ViewContext *vc, const float *vert_nor, - const float mval[2], const float brush_size_pressure) + const float mval[2], const float brush_size_pressure) { Brush *brush = paint_brush(&vp->paint); float dist_squared; @@ -918,7 +919,7 @@ BLI_INLINE float wval_sub(const float weight, const float paintval, const float return weight - (paintval * alpha); } BLI_INLINE float wval_mul(const float weight, const float paintval, const float alpha) -{ /* first mul, then blend the fac */ +{ /* first mul, then blend the fac */ return ((1.0f - alpha) + (alpha * paintval)) * weight; } BLI_INLINE float wval_lighten(const float weight, const float paintval, const float alpha) @@ -962,7 +963,7 @@ static float wpaint_blend(VPaint *wp, float weight, float weight_prev, int tool = brush->vertexpaint_tool; if (do_flip) { - switch(tool) { + switch (tool) { case PAINT_BLEND_MIX: paintval = 1.f - paintval; break; case PAINT_BLEND_ADD: @@ -1066,7 +1067,7 @@ static int weight_sample_invoke(bContext *C, wmOperator *op, wmEvent *event) if (change) { /* not really correct since the brush didnt change, but redraws the toolbar */ - WM_main_add_notifier(NC_BRUSH|NA_EDITED, NULL); /* ts->wpaint->paint.brush */ + WM_main_add_notifier(NC_BRUSH | NA_EDITED, NULL); /* ts->wpaint->paint.brush */ return OPERATOR_FINISHED; } @@ -1169,7 +1170,7 @@ static int weight_sample_group_exec(bContext *C, wmOperator *op) vc.obact->actdef = type + 1; DAG_id_tag_update(&vc.obact->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, vc.obact); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, vc.obact); return OPERATOR_FINISHED; } @@ -1218,7 +1219,7 @@ static void do_weight_paint_normalize_all(MDeformVert *dvert, const int defbase_ for (i = dvert->totweight, dw = dvert->dw; i != 0; i--, dw++) { if (dw->def_nr < defbase_tot && vgroup_validmap[dw->def_nr]) { - dw->weight *= fac; + dw->weight *= fac; } } } @@ -1315,7 +1316,7 @@ static char has_locked_group(MDeformVert *dvert, const int defbase_tot, } /* * gen_lck_flags gets the status of "flag" for each bDeformGroup - *in ob->defbase and returns an array containing them + * in ob->defbase and returns an array containing them */ static char *gen_lock_flags(Object *ob, int defbase_tot) { @@ -1443,7 +1444,7 @@ static float redistribute_change(MDeformVert *ndv, const int defbase_tot, change_status[ndw->def_nr] = changeto; total_valid--; } - else {/* a perfectly valid change occurred to ndw->weight */ + else { /* a perfectly valid change occurred to ndw->weight */ totchange -= change; ndw->weight += change; } @@ -1731,11 +1732,12 @@ static int get_first_selected_nonzero_weight(MDeformVert *dvert, const int defba static char *wpaint_make_validmap(Object *ob); -static void do_weight_paint_vertex(/* vars which remain the same for every vert */ - VPaint *wp, Object *ob, const WeightPaintInfo *wpi, - /* vars which change on each stroke */ - const unsigned int index, float alpha, float paintweight - ) +static void do_weight_paint_vertex( + /* vars which remain the same for every vert */ + VPaint *wp, Object *ob, const WeightPaintInfo *wpi, + /* vars which change on each stroke */ + const unsigned int index, float alpha, float paintweight + ) { Mesh *me = ob->data; MDeformVert *dv = &me->dvert[index]; @@ -1915,7 +1917,7 @@ static void do_weight_paint_vertex(/* vars which remain the same for every vert if (tdw->weight != tdw_prev->weight) { oldChange = tdw->weight / tdw_prev->weight; testw = tdw_prev->weight * change; - if ( testw > tdw_prev->weight ) { + if (testw > tdw_prev->weight) { if (change > oldChange) { /* reset the weights and use the new change */ defvert_reset_to_prev(wp->wpaint_prev + index, dv); @@ -1955,7 +1957,7 @@ static void do_weight_paint_vertex(/* vars which remain the same for every vert dw = defvert_find_index(dv, vgroup); #else dw = NULL; /* UNUSED after assignment, set to NULL to ensuyre we don't - * use again, we thats needed un-ifdef the line above */ + * use again, we thats needed un-ifdef the line above */ (void)dw; /* quiet warnigns */ #endif @@ -1972,7 +1974,7 @@ static void do_weight_paint_vertex(/* vars which remain the same for every vert /* *************** set wpaint operator ****************** */ -static int set_wpaint(bContext *C, wmOperator *UNUSED(op)) /* toggle */ +static int set_wpaint(bContext *C, wmOperator *UNUSED(op)) /* toggle */ { Object *ob = CTX_data_active_object(C); Scene *scene = CTX_data_scene(C); @@ -2018,7 +2020,7 @@ static int set_wpaint(bContext *C, wmOperator *UNUSED(op)) /* toggle */ mesh_mirrtopo_table(NULL, 'e'); } - WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE, scene); return OPERATOR_FINISHED; } @@ -2048,7 +2050,7 @@ void PAINT_OT_weight_paint_toggle(wmOperatorType *ot) ot->poll = paint_poll_test; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -2089,7 +2091,7 @@ static char *wpaint_make_validmap(Object *ob) /* now loop through the armature modifiers and identify deform bones */ for (md = ob->modifiers.first; md; md = !md->next && step1 ? (step1 = 0), modifiers_getVirtualModifierList(ob) : md->next) { - if (!(md->mode & (eModifierMode_Realtime|eModifierMode_Virtual))) + if (!(md->mode & (eModifierMode_Realtime | eModifierMode_Virtual))) continue; if (md->type == eModifierType_Armature) { @@ -2149,7 +2151,7 @@ static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *UNUSED /* if nothing was added yet, we make dverts and a vertex deform group */ if (!me->dvert) { ED_vgroup_data_create(&me->id); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, me); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, me); } /* this happens on a Bone select, when no vgroup existed yet */ @@ -2163,7 +2165,7 @@ static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *UNUSED if (pchan) { bDeformGroup *dg = defgroup_find_name(ob, pchan->name); if (dg == NULL) { - dg = ED_vgroup_add_name(ob, pchan->name); /* sets actdef */ + dg = ED_vgroup_add_name(ob, pchan->name); /* sets actdef */ } else { int actdef = 1 + BLI_findindex(&ob->defbase, dg); @@ -2403,7 +2405,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P if (me->dvert[vidx].flag) { alpha = calc_vp_alpha_dl(wp, vc, wpd->wpimat, wpd->vertexcosnos + 6 * vidx, - mval, brush_size_pressure, brush_alpha_pressure); + mval, brush_size_pressure, brush_alpha_pressure); if (alpha) { do_weight_paint_vertex(wp, ob, &wpi, vidx, alpha, paintweight); } @@ -2503,7 +2505,7 @@ void PAINT_OT_weight_paint(wmOperatorType *ot) ot->cancel = wpaint_cancel; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING; RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", ""); } @@ -2529,13 +2531,13 @@ void PAINT_OT_weight_set(wmOperatorType *ot) ot->poll = mask_paint_poll; /* it was facemask_paint_poll */ /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* ************ set / clear vertex paint mode ********** */ -static int set_vpaint(bContext *C, wmOperator *op) /* toggle */ +static int set_vpaint(bContext *C, wmOperator *op) /* toggle */ { Object *ob = CTX_data_active_object(C); Scene *scene = CTX_data_scene(C); @@ -2576,7 +2578,7 @@ static int set_vpaint(bContext *C, wmOperator *op) /* toggle */ /* update modifier stack for mapping requirements */ DAG_id_tag_update(&me->id, 0); - WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE, scene); return OPERATOR_FINISHED; } @@ -2593,7 +2595,7 @@ void PAINT_OT_vertex_paint_toggle(wmOperatorType *ot) ot->poll = paint_poll_test; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -2737,17 +2739,17 @@ static void vpaint_paint_face(VPaint *vp, VPaintData *vpd, Object *ob, int brush_alpha_pressure_i; if ((vp->flag & VP_COLINDEX && mface->mat_nr != ob->actcol - 1) || - ((me->editflag & ME_EDIT_PAINT_MASK) && !(mface->flag & ME_FACE_SEL))) + ((me->editflag & ME_EDIT_PAINT_MASK) && !(mface->flag & ME_FACE_SEL))) return; if (brush->vertexpaint_tool == PAINT_BLEND_BLUR) { - unsigned int fcol1 = mcol_blend( mcol[0], mcol[1], 128); + unsigned int fcol1 = mcol_blend(mcol[0], mcol[1], 128); if (mface->v4) { - unsigned int fcol2 = mcol_blend( mcol[2], mcol[3], 128); - vpd->paintcol = mcol_blend( fcol1, fcol2, 128); + unsigned int fcol2 = mcol_blend(mcol[2], mcol[3], 128); + vpd->paintcol = mcol_blend(fcol1, fcol2, 128); } else { - vpd->paintcol = mcol_blend( mcol[2], fcol1, 170); + vpd->paintcol = mcol_blend(mcol[2], fcol1, 170); } } @@ -2974,8 +2976,8 @@ static int vpaint_invoke(bContext *C, wmOperator *op, wmEvent *event) { op->customdata = paint_stroke_new(C, NULL, vpaint_stroke_test_start, - vpaint_stroke_update_step, - vpaint_stroke_done, event->type); + vpaint_stroke_update_step, + vpaint_stroke_done, event->type); /* add modal handler */ WM_event_add_modal_handler(C, op); @@ -3006,7 +3008,7 @@ void PAINT_OT_vertex_paint(wmOperatorType *ot) ot->cancel = vpaint_cancel; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING; RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", ""); } @@ -3031,7 +3033,7 @@ static int weight_from_bones_exec(bContext *C, wmOperator *op) create_vgroups_from_armature(op->reports, scene, ob, armob, type, (me->editflag & ME_EDIT_MIRROR_X)); DAG_id_tag_update(&me->id, 0); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, me); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, me); return OPERATOR_FINISHED; } @@ -3053,7 +3055,7 @@ void PAINT_OT_weight_from_bones(wmOperatorType *ot) ot->poll = weight_from_bones_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", type_items, 0, "Type", "Method to use for assigning weights"); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index e91f26fc9ba..506716543ea 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -95,7 +95,7 @@ void ED_sculpt_force_update(bContext *C) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); if (ob && (ob->mode & OB_MODE_SCULPT)) multires_force_update(ob); @@ -103,9 +103,8 @@ void ED_sculpt_force_update(bContext *C) /* Sculpt mode handles multires differently from regular meshes, but only if * it's the last modifier on the stack and it is not on the first level */ -struct MultiresModifierData *sculpt_multires_active(Scene *scene, Object *ob) -{ - Mesh *me= (Mesh*)ob->data; +struct MultiresModifierData *sculpt_multires_active(Scene *scene, Object *ob){ + Mesh *me = (Mesh *)ob->data; ModifierData *md; if (!CustomData_get_layer(&me->ldata, CD_MDISPS)) { @@ -113,9 +112,9 @@ struct MultiresModifierData *sculpt_multires_active(Scene *scene, Object *ob) return NULL; } - for (md= modifiers_getVirtualModifierList(ob); md; md= md->next) { + for (md = modifiers_getVirtualModifierList(ob); md; md = md->next) { if (md->type == eModifierType_Multires) { - MultiresModifierData *mmd= (MultiresModifierData*)md; + MultiresModifierData *mmd = (MultiresModifierData *)md; if (!modifier_isEnabled(scene, md, eModifierMode_Realtime)) continue; @@ -133,10 +132,10 @@ static int sculpt_has_active_modifiers(Scene *scene, Object *ob) { ModifierData *md; - md= modifiers_getVirtualModifierList(ob); + md = modifiers_getVirtualModifierList(ob); /* exception for shape keys because we can edit those */ - for (; md; md= md->next) { + for (; md; md = md->next) { if (modifier_isEnabled(scene, md, eModifierMode_Realtime)) return 1; } @@ -148,25 +147,25 @@ static int sculpt_has_active_modifiers(Scene *scene, Object *ob) static int sculpt_modifiers_active(Scene *scene, Sculpt *sd, Object *ob) { ModifierData *md; - Mesh *me= (Mesh*)ob->data; - MultiresModifierData *mmd= sculpt_multires_active(scene, ob); + Mesh *me = (Mesh *)ob->data; + MultiresModifierData *mmd = sculpt_multires_active(scene, ob); if (mmd) return 0; /* non-locked shape keys could be handled in the same way as deformed mesh */ - if ((ob->shapeflag&OB_SHAPE_LOCK)==0 && me->key && ob->shapenr) + if ((ob->shapeflag & OB_SHAPE_LOCK) == 0 && me->key && ob->shapenr) return 1; - md= modifiers_getVirtualModifierList(ob); + md = modifiers_getVirtualModifierList(ob); /* exception for shape keys because we can edit those */ - for (; md; md= md->next) { + for (; md; md = md->next) { ModifierTypeInfo *mti = modifierType_getInfo(md->type); if (!modifier_isEnabled(scene, md, eModifierMode_Realtime)) continue; - if (md->type==eModifierType_ShapeKey) continue; + if (md->type == eModifierType_ShapeKey) continue; - if (mti->type==eModifierTypeType_OnlyDeform) return 1; - else if ((sd->flags & SCULPT_ONLY_DEFORM)==0) return 1; + if (mti->type == eModifierTypeType_OnlyDeform) return 1; + else if ((sd->flags & SCULPT_ONLY_DEFORM) == 0) return 1; } return 0; @@ -248,10 +247,10 @@ typedef struct StrokeCache { /* Get a screen-space rectangle of the modified area */ static int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, - Object *ob, rcti *rect) + Object *ob, rcti *rect) { SculptSession *ss; - PBVH *pbvh= ob->sculpt->pbvh; + PBVH *pbvh = ob->sculpt->pbvh; float bb_min[3], bb_max[3]; if (!pbvh) @@ -261,11 +260,11 @@ static int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, /* convert 3D bounding box to screen space */ if (!paint_convert_bb_to_rect(rect, - bb_min, - bb_max, - ar, - rv3d, - ob)) { + bb_min, + bb_max, + ar, + rv3d, + ob)) { return 0; } @@ -285,9 +284,9 @@ static int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, } void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar, - RegionView3D *rv3d, Object *ob) + RegionView3D *rv3d, Object *ob) { - PBVH *pbvh= ob->sculpt->pbvh; + PBVH *pbvh = ob->sculpt->pbvh; rcti rect; sculpt_get_redraw_rect(ar, rv3d, ob, &rect); @@ -309,9 +308,9 @@ typedef struct SculptBrushTest { static void sculpt_brush_test_init(SculptSession *ss, SculptBrushTest *test) { - test->radius_squared= ss->cache->radius_squared; + test->radius_squared = ss->cache->radius_squared; copy_v3_v3(test->location, ss->cache->location); - test->dist= 0.0f; /* just for initialize */ + test->dist = 0.0f; /* just for initialize */ } static int sculpt_brush_test(SculptBrushTest *test, float co[3]) @@ -360,8 +359,8 @@ static int sculpt_brush_test_cube(SculptBrushTest *test, float co[3], float loca float p = 4; test->dist = ((powf(local_co[0], p) + - powf(local_co[1], p) + - powf(local_co[2], p)) / pow(side, p)); + powf(local_co[1], p) + + powf(local_co[2], p)) / pow(side, p)); return 1; } @@ -371,7 +370,7 @@ static int sculpt_brush_test_cube(SculptBrushTest *test, float co[3], float loca } static float frontface(Brush *brush, const float sculpt_normal[3], - const short no[3], const float fno[3]) + const short no[3], const float fno[3]) { if (brush->flag & BRUSH_FRONTFACE) { float dot; @@ -380,10 +379,10 @@ static float frontface(Brush *brush, const float sculpt_normal[3], float tmp[3]; normal_short_to_float_v3(tmp, no); - dot= dot_v3v3(tmp, sculpt_normal); + dot = dot_v3v3(tmp, sculpt_normal); } else { - dot= dot_v3v3(fno, sculpt_normal); + dot = dot_v3v3(fno, sculpt_normal); } return dot > 0 ? dot : 0; } @@ -404,7 +403,7 @@ static int sculpt_brush_test_cyl(SculptBrushTest *test, float co[3], float locat cross_v3_v3v3(t3, an, t1); - dist = len_v3(t3)/len_v3(t2); + dist = len_v3(t3) / len_v3(t2); test->dist = dist; @@ -421,20 +420,20 @@ static int sculpt_brush_test_cyl(SculptBrushTest *test, float co[3], float locat */ -static float overlapped_curve(Brush* br, float x) +static float overlapped_curve(Brush *br, float x) { int i; const int n = 100 / br->spacing; const float h = br->spacing / 50.0f; - const float x0 = x-1; + const float x0 = x - 1; float sum; sum = 0; - for (i= 0; i < n; i++) { + for (i = 0; i < n; i++) { float xx; - xx = fabs(x0 + i*h); + xx = fabs(x0 + i * h); if (xx < 1.0f) sum += brush_curve_strength(br, xx, 1); @@ -443,16 +442,16 @@ static float overlapped_curve(Brush* br, float x) return sum; } -static float integrate_overlap(Brush* br) +static float integrate_overlap(Brush *br) { int i; - int m= 10; - float g = 1.0f/m; + int m = 10; + float g = 1.0f / m; float max; - max= 0; - for (i= 0; i < m; i++) { - float overlap= overlapped_curve(br, i*g); + max = 0; + for (i = 0; i < m; i++) { + float overlap = overlapped_curve(br, i * g); if (overlap > max) max = overlap; @@ -465,17 +464,17 @@ static float integrate_overlap(Brush* br) static void flip_coord(float out[3], float in[3], const char symm) { if (symm & SCULPT_SYMM_X) - out[0]= -in[0]; + out[0] = -in[0]; else - out[0]= in[0]; + out[0] = in[0]; if (symm & SCULPT_SYMM_Y) - out[1]= -in[1]; + out[1] = -in[1]; else - out[1]= in[1]; + out[1] = in[1]; if (symm & SCULPT_SYMM_Z) - out[2]= -in[2]; + out[2] = -in[2]; else - out[2]= in[2]; + out[2] = in[2]; } static float calc_overlap(StrokeCache *cache, const char symm, const char axis, const float angle) @@ -487,7 +486,7 @@ static float calc_overlap(StrokeCache *cache, const char symm, const char axis, flip_coord(mirror, cache->true_location, symm); if (axis != 0) { - float mat[4][4]= MAT4_UNITY; + float mat[4][4] = MAT4_UNITY; rotate_m4(mat, axis, angle); mul_m4_v3(mat, mirror); } @@ -495,8 +494,8 @@ static float calc_overlap(StrokeCache *cache, const char symm, const char axis, /* distsq = len_squared_v3v3(mirror, cache->traced_location); */ distsq = len_squared_v3v3(mirror, cache->true_location); - if (distsq <= 4.0f*(cache->radius_squared)) - return (2.0f*(cache->radius) - sqrtf(distsq)) / (2.0f*(cache->radius)); + if (distsq <= 4.0f * (cache->radius_squared)) + return (2.0f * (cache->radius) - sqrtf(distsq)) / (2.0f * (cache->radius)); else return 0; } @@ -507,15 +506,15 @@ static float calc_radial_symmetry_feather(Sculpt *sd, StrokeCache *cache, const float overlap; overlap = 0; - for (i = 1; i < sd->radial_symm[axis-'X']; ++i) { - const float angle = 2*M_PI*i/sd->radial_symm[axis-'X']; + for (i = 1; i < sd->radial_symm[axis - 'X']; ++i) { + const float angle = 2 * M_PI * i / sd->radial_symm[axis - 'X']; overlap += calc_overlap(cache, symm, axis, angle); } return overlap; } -static float calc_symmetry_feather(Sculpt *sd, StrokeCache* cache) +static float calc_symmetry_feather(Sculpt *sd, StrokeCache *cache) { if (sd->flags & SCULPT_SYMMETRY_FEATHER) { float overlap; @@ -534,7 +533,7 @@ static float calc_symmetry_feather(Sculpt *sd, StrokeCache* cache) } } - return 1/overlap; + return 1 / overlap; } else { return 1; @@ -551,7 +550,7 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather) /* Primary strength input; square it to make lower values more sensitive */ const float root_alpha = brush_alpha(scene, brush); - float alpha = root_alpha*root_alpha; + float alpha = root_alpha * root_alpha; float dir = brush->flag & BRUSH_DIR_IN ? -1 : 1; float pressure = brush_use_alpha_pressure(scene, brush) ? cache->pressure : 1; float pen_flip = cache->pen_flip ? -1 : 1; @@ -560,12 +559,12 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather) /* spacing is integer percentage of radius, divide by 50 to get * normalized diameter */ float overlap = (brush->flag & BRUSH_SPACE_ATTEN && - brush->flag & BRUSH_SPACE && - !(brush->flag & BRUSH_ANCHORED) && - (brush->spacing < 100)) ? 1.0f/accum : 1; + brush->flag & BRUSH_SPACE && + !(brush->flag & BRUSH_ANCHORED) && + (brush->spacing < 100)) ? 1.0f / accum : 1; float flip = dir * invert * pen_flip; - switch(brush->sculpt_tool) { + switch (brush->sculpt_tool) { case SCULPT_TOOL_CLAY: case SCULPT_TOOL_CLAY_STRIPS: case SCULPT_TOOL_DRAW: @@ -588,7 +587,7 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather) case SCULPT_TOOL_SCRAPE: case SCULPT_TOOL_FLATTEN: if (flip > 0) { - overlap = (1+overlap) / 2; + overlap = (1 + overlap) / 2; return alpha * flip * pressure * overlap * feather; } else { @@ -608,11 +607,11 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather) } case SCULPT_TOOL_NUDGE: - overlap = (1+overlap) / 2; + overlap = (1 + overlap) / 2; return alpha * pressure * overlap * feather; case SCULPT_TOOL_THUMB: - return alpha*pressure*feather; + return alpha * pressure * feather; case SCULPT_TOOL_SNAKE_HOOK: return feather; @@ -621,7 +620,7 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather) return feather; case SCULPT_TOOL_ROTATE: - return alpha*pressure*feather; + return alpha * pressure * feather; default: return 0; @@ -630,24 +629,24 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather) /* Return a multiplier for brush strength on a particular vertex. */ static float tex_strength(SculptSession *ss, Brush *br, float point[3], - const float len, - const float sculpt_normal[3], - const short vno[3], - const float fno[3]) + const float len, + const float sculpt_normal[3], + const short vno[3], + const float fno[3]) { MTex *mtex = &br->mtex; - float avg= 1; + float avg = 1; if (!mtex->tex) { - avg= 1; + avg = 1; } else if (mtex->brush_map_mode == MTEX_MAP_MODE_3D) { float jnk; /* Get strength by feeding the vertex - * location directly into a texture */ + * location directly into a texture */ externtex(mtex, point, &avg, - &jnk, &jnk, &jnk, &jnk, 0); + &jnk, &jnk, &jnk, &jnk, 0); } else if (ss->texcache) { float rotation = -mtex->rot; @@ -680,9 +679,9 @@ static float tex_strength(SculptSession *ss, Brush *br, float point[3], x = point_2d[0] + ss->cache->vc->ar->winrct.xmin; y = point_2d[1] + ss->cache->vc->ar->winrct.ymin; } - else /* else (mtex->brush_map_mode == MTEX_MAP_MODE_TILED) */ - /* leave the coordinates relative to the screen */ - { + else { /* else (mtex->brush_map_mode == MTEX_MAP_MODE_TILED) */ + /* leave the coordinates relative to the screen */ + /* use unadjusted size for tiled mode */ radius = brush_size(ss->cache->vc->scene, br); @@ -706,7 +705,7 @@ static float tex_strength(SculptSession *ss, Brush *br, float point[3], * atan2, sqrtf, sin, and cos. */ if (rotation > 0.001f || rotation < -0.001f) { const float angle = atan2f(y, x) + rotation; - const float flen = sqrtf(x*x + y*y); + const float flen = sqrtf(x * x + y * y); x = flen * cosf(angle); y = flen * sinf(angle); @@ -770,14 +769,14 @@ static void sculpt_clip(Sculpt *sd, SculptSession *ss, float *co, const float va { int i; - for (i=0; i<3; ++i) { + for (i = 0; i < 3; ++i) { if (sd->flags & (SCULPT_LOCK_X << i)) continue; if ((ss->cache->flag & (CLIP_X << i)) && (fabsf(co[i]) <= ss->cache->clip_tolerance[i])) - co[i]= 0.0f; + co[i] = 0.0f; else - co[i]= val[i]; + co[i] = val[i]; } } @@ -803,7 +802,7 @@ static void calc_area_normal(Sculpt *sd, Object *ob, float an[3], PBVHNode **nod zero_v3(an); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; SculptUndoNode *unode; @@ -863,7 +862,7 @@ static void calc_sculpt_normal(Sculpt *sd, Object *ob, float an[3], PBVHNode **n if (ss->cache->mirror_symmetry_pass == 0 && ss->cache->radial_symmetry_pass == 0 && - (ss->cache->first_time || !(brush->flag & BRUSH_ORIGINAL_NORMAL))) + (ss->cache->first_time || !(brush->flag & BRUSH_ORIGINAL_NORMAL))) { switch (brush->sculpt_plane) { case SCULPT_DISP_DIR_VIEW: @@ -920,7 +919,7 @@ static void neighbor_average(SculptSession *ss, float avg[3], unsigned vert) int i, total = 0; for (i = 0; i < vert_map->count; i++) { - const MPoly *p= &ss->mpoly[vert_map->indices[i]]; + const MPoly *p = &ss->mpoly[vert_map->indices[i]]; unsigned f_adj_v[3]; if (poly_get_adj_loops_from_vert(f_adj_v, p, ss->mloop, vert) != -1) { @@ -929,7 +928,7 @@ static void neighbor_average(SculptSession *ss, float avg[3], unsigned vert) for (j = 0; j < 3; j++) { if (vert_map->count != 2 || ss->pmap[f_adj_v[j]].count <= 2) { add_v3_v3(avg, deform_co ? deform_co[f_adj_v[j]] : - mvert[f_adj_v[j]].co); + mvert[f_adj_v[j]].co); total++; } @@ -958,8 +957,8 @@ static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node, BLI_pbvh_vertex_iter_begin(ss->pbvh, node, vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, vd.co)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist, - ss->cache->view_normal, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist, + ss->cache->view_normal, vd.no, vd.fno); float avg[3], val[3]; neighbor_average(ss, avg, vd.vert_indices[vd.i]); @@ -971,7 +970,7 @@ static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node, sculpt_clip(sd, ss, vd.co, val); if (vd.mvert) - vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + vd.mvert->flag |= ME_VERT_PBVH_UPDATE; } } BLI_pbvh_vertex_iter_end; @@ -992,34 +991,34 @@ static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *no CLAMP(bstrength, 0.0f, 1.0f); BLI_pbvh_node_get_grids(ss->pbvh, node, &grid_indices, &totgrid, - NULL, &gridsize, &griddata, &gridadj); + NULL, &gridsize, &griddata, &gridadj); #pragma omp critical { - tmpgrid= MEM_mallocN(sizeof(float)*3*gridsize*gridsize, "tmpgrid"); - tmprow= MEM_mallocN(sizeof(float)*3*gridsize, "tmprow"); + tmpgrid = MEM_mallocN(sizeof(float) * 3 * gridsize * gridsize, "tmpgrid"); + tmprow = MEM_mallocN(sizeof(float) * 3 * gridsize, "tmprow"); } for (i = 0; i < totgrid; ++i) { data = griddata[grid_indices[i]]; adj = &gridadj[grid_indices[i]]; - memset(tmpgrid, 0, sizeof(float)*3*gridsize*gridsize); + memset(tmpgrid, 0, sizeof(float) * 3 * gridsize * gridsize); - for (y= 0; y < gridsize-1; y++) { + for (y = 0; y < gridsize - 1; y++) { float tmp[3]; - v1 = y*gridsize; - add_v3_v3v3(tmprow[0], data[v1].co, data[v1+gridsize].co); + v1 = y * gridsize; + add_v3_v3v3(tmprow[0], data[v1].co, data[v1 + gridsize].co); - for (x= 0; x < gridsize-1; x++) { - v1 = x + y*gridsize; + for (x = 0; x < gridsize - 1; x++) { + v1 = x + y * gridsize; v2 = v1 + 1; v3 = v1 + gridsize; v4 = v3 + 1; - add_v3_v3v3(tmprow[x+1], data[v2].co, data[v4].co); - add_v3_v3v3(tmp, tmprow[x+1], tmprow[x]); + add_v3_v3v3(tmprow[x + 1], data[v2].co, data[v4].co); + add_v3_v3v3(tmp, tmprow[x + 1], tmprow[x]); add_v3_v3(tmpgrid[v1], tmp); add_v3_v3(tmpgrid[v2], tmp); @@ -1047,19 +1046,19 @@ static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *no if (y == gridsize - 1 && adj->index[1] == -1) continue; - index = x + y*gridsize; - co= data[index].co; - fno= data[index].no; + index = x + y * gridsize; + co = data[index].co; + fno = data[index].no; if (sculpt_brush_test(&test, co)) { - const float fade = bstrength*tex_strength(ss, brush, co, test.dist, - ss->cache->view_normal, NULL, fno); + const float fade = bstrength * tex_strength(ss, brush, co, test.dist, + ss->cache->view_normal, NULL, fno); float *avg, val[3]; float n; - avg = tmpgrid[x + y*gridsize]; + avg = tmpgrid[x + y * gridsize]; - n = 1/16.0f; + n = 1 / 16.0f; if (x == 0 || x == gridsize - 1) n *= 2; @@ -1091,18 +1090,18 @@ static void smooth(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, float { SculptSession *ss = ob->sculpt; const int max_iterations = 4; - const float fract = 1.0f/max_iterations; + const float fract = 1.0f / max_iterations; int iteration, n, count; float last; CLAMP(bstrength, 0, 1); - count = (int)(bstrength*max_iterations); - last = max_iterations*(bstrength - count*fract); + count = (int)(bstrength * max_iterations); + last = max_iterations * (bstrength - count * fract); for (iteration = 0; iteration <= count; ++iteration) { #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { if (ss->multires) { do_multires_smooth_brush(sd, ss, nodes[n], iteration != count ? 1.0f : last); } @@ -1126,7 +1125,7 @@ static void do_draw_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) SculptSession *ss = ob->sculpt; Brush *brush = paint_brush(&sd->paint); float offset[3], area_normal[3]; - float bstrength= ss->cache->bstrength; + float bstrength = ss->cache->bstrength; int n; calc_sculpt_normal(sd, ob, area_normal, nodes, totnode); @@ -1138,12 +1137,12 @@ static void do_draw_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) /* threaded loop over nodes */ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); @@ -1151,7 +1150,7 @@ static void do_draw_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) if (sculpt_brush_test(&test, vd.co)) { /* offset vertex */ float fade = tex_strength(ss, brush, vd.co, test.dist, - area_normal, vd.no, vd.fno); + area_normal, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], offset, fade); @@ -1169,7 +1168,7 @@ static void do_crease_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod const Scene *scene = ss->cache->vc->scene; Brush *brush = paint_brush(&sd->paint); float offset[3], area_normal[3]; - float bstrength= ss->cache->bstrength; + float bstrength = ss->cache->bstrength; float flippedbstrength, crease_correction; int n; @@ -1183,23 +1182,23 @@ static void do_crease_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod /* we divide out the squared alpha and multiply by the squared crease to give us the pinch strength */ if (brush_alpha(scene, brush) > 0.0f) - crease_correction = brush->crease_pinch_factor*brush->crease_pinch_factor/(brush_alpha(scene, brush)*brush_alpha(scene, brush)); + crease_correction = brush->crease_pinch_factor * brush->crease_pinch_factor / (brush_alpha(scene, brush) * brush_alpha(scene, brush)); else - crease_correction = brush->crease_pinch_factor*brush->crease_pinch_factor; + crease_correction = brush->crease_pinch_factor * brush->crease_pinch_factor; /* we always want crease to pinch or blob to relax even when draw is negative */ - flippedbstrength = (bstrength < 0) ? -crease_correction*bstrength : crease_correction*bstrength; + flippedbstrength = (bstrength < 0) ? -crease_correction * bstrength : crease_correction * bstrength; if (brush->sculpt_tool == SCULPT_TOOL_BLOB) flippedbstrength *= -1.0f; /* threaded loop over nodes */ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); @@ -1213,7 +1212,7 @@ static void do_crease_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod /* first we pinch */ sub_v3_v3v3(val1, test.location, vd.co); - mul_v3_fl(val1, fade*flippedbstrength); + mul_v3_fl(val1, fade * flippedbstrength); /* then we draw */ mul_v3_v3fl(val2, offset, fade); @@ -1232,23 +1231,23 @@ static void do_pinch_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode { SculptSession *ss = ob->sculpt; Brush *brush = paint_brush(&sd->paint); - float bstrength= ss->cache->bstrength; + float bstrength = ss->cache->bstrength; int n; #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, vd.co)) { - float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist, - ss->cache->view_normal, vd.no, vd.fno); + float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist, + ss->cache->view_normal, vd.no, vd.fno); float val[3]; sub_v3_v3v3(val, test.location, vd.co); @@ -1265,14 +1264,14 @@ static void do_pinch_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode static void do_grab_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) { SculptSession *ss = ob->sculpt; - Brush *brush= paint_brush(&sd->paint); - float bstrength= ss->cache->bstrength; + Brush *brush = paint_brush(&sd->paint); + float bstrength = ss->cache->bstrength; float grab_delta[3], an[3]; int n; float len; if (brush->normal_weight > 0 || brush->flag & BRUSH_FRONTFACE) { - int cache= 1; + int cache = 1; /* grab brush requires to test on original data */ SWAP(int, ss->cache->original, cache); calc_sculpt_normal(sd, ob, an, nodes, totnode); @@ -1284,32 +1283,33 @@ static void do_grab_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) len = len_v3(grab_delta); if (brush->normal_weight > 0) { - mul_v3_fl(an, len*brush->normal_weight); + mul_v3_fl(an, len * brush->normal_weight); mul_v3_fl(grab_delta, 1.0f - brush->normal_weight); add_v3_v3(grab_delta, an); } #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; - SculptUndoNode* unode; + SculptUndoNode *unode; SculptBrushTest test; float (*origco)[3]; short (*origno)[3]; float (*proxy)[3]; - unode= sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); - origco= unode->co; - origno= unode->no; + unode = sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); + origco = unode->co; + origno = unode->no; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); - BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { + BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) + { if (sculpt_brush_test(&test, origco[vd.i])) { - const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist, - an, origno[vd.i], NULL); + const float fade = bstrength * tex_strength(ss, brush, origco[vd.i], test.dist, + an, origno[vd.i], NULL); mul_v3_v3fl(proxy[vd.i], grab_delta, fade); @@ -1344,14 +1344,14 @@ static void do_nudge_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, vd.co)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist, - an, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist, + an, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], cono, fade); @@ -1383,7 +1383,7 @@ static void do_snake_hook_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int to negate_v3(grab_delta); if (brush->normal_weight > 0) { - mul_v3_fl(an, len*brush->normal_weight); + mul_v3_fl(an, len * brush->normal_weight); mul_v3_fl(grab_delta, 1.0f - brush->normal_weight); add_v3_v3(grab_delta, an); } @@ -1394,14 +1394,14 @@ static void do_snake_hook_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int to SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, vd.co)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist, - an, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist, + an, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], grab_delta, fade); @@ -1433,24 +1433,24 @@ static void do_thumb_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) for (n = 0; n < totnode; n++) { PBVHVertexIter vd; - SculptUndoNode* unode; + SculptUndoNode *unode; SculptBrushTest test; float (*origco)[3]; short (*origno)[3]; float (*proxy)[3]; - unode= sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); - origco= unode->co; - origno= unode->no; + unode = sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); + origco = unode->co; + origno = unode->no; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, origco[vd.i])) { - const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist, - an, origno[vd.i], NULL); + const float fade = bstrength * tex_strength(ss, brush, origco[vd.i], test.dist, + an, origno[vd.i], NULL); mul_v3_v3fl(proxy[vd.i], cono, fade); @@ -1465,8 +1465,8 @@ static void do_thumb_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode static void do_rotate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) { SculptSession *ss = ob->sculpt; - Brush *brush= paint_brush(&sd->paint); - float bstrength= ss->cache->bstrength; + Brush *brush = paint_brush(&sd->paint); + float bstrength = ss->cache->bstrength; float an[3]; int n; float m[4][4], rot[4][4], lmat[4][4], ilmat[4][4]; @@ -1485,26 +1485,26 @@ static void do_rotate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod mul_serie_m4(m, lmat, rot, ilmat, NULL, NULL, NULL, NULL, NULL); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; - SculptUndoNode* unode; + SculptUndoNode *unode; SculptBrushTest test; float (*origco)[3]; short (*origno)[3]; float (*proxy)[3]; - unode= sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); - origco= unode->co; - origno= unode->no; + unode = sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); + origco = unode->co; + origno = unode->no; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, origco[vd.i])) { - const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist, - an, origno[vd.i], NULL); + const float fade = bstrength * tex_strength(ss, brush, origco[vd.i], test.dist, + an, origno[vd.i], NULL); mul_v3_m4v3(proxy[vd.i], m, origco[vd.i]); sub_v3_v3(proxy[vd.i], origco[vd.i]); @@ -1522,9 +1522,9 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode { SculptSession *ss = ob->sculpt; Brush *brush = paint_brush(&sd->paint); - float bstrength= ss->cache->bstrength; + float bstrength = ss->cache->bstrength; float area_normal[3], offset[3]; - float lim= brush->height; + float lim = brush->height; int n; if (bstrength < 0) @@ -1535,7 +1535,7 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode mul_v3_v3v3(offset, ss->cache->scale, area_normal); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; SculptUndoNode *unode; @@ -1543,25 +1543,25 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode /* XXX: layer brush needs conversion to proxy but its more complicated */ /* proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; */ - unode= sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); - origco=unode->co; + unode = sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); + origco = unode->co; if (!unode->layer_disp) { #pragma omp critical - unode->layer_disp= MEM_callocN(sizeof(float)*unode->totvert, "layer disp"); + unode->layer_disp = MEM_callocN(sizeof(float) * unode->totvert, "layer disp"); } - layer_disp= unode->layer_disp; + layer_disp = unode->layer_disp; sculpt_brush_test_init(ss, &test); BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, origco[vd.i])) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist, - area_normal, vd.no, vd.fno); - float *disp= &layer_disp[vd.i]; + const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist, + area_normal, vd.no, vd.fno); + float *disp = &layer_disp[vd.i]; float val[3]; - *disp+= fade; + *disp += fade; /* Don't let the displacement go past the limit */ if ((lim < 0 && *disp < lim) || (lim >= 0 && *disp > lim)) @@ -1570,7 +1570,7 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode mul_v3_v3fl(val, offset, *disp); if (ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) { - int index= vd.vert_indices[vd.i]; + int index = vd.vert_indices[vd.i]; /* persistent base */ add_v3_v3(val, ss->layer_co[index]); @@ -1593,23 +1593,23 @@ static void do_inflate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno { SculptSession *ss = ob->sculpt; Brush *brush = paint_brush(&sd->paint); - float bstrength= ss->cache->bstrength; + float bstrength = ss->cache->bstrength; int n; #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { if (sculpt_brush_test(&test, vd.co)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist, - ss->cache->view_normal, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist, + ss->cache->view_normal, vd.no, vd.fno); float val[3]; if (vd.fno) copy_v3_v3(val, vd.fno); @@ -1638,7 +1638,7 @@ static void calc_flatten_center(Sculpt *sd, Object *ob, PBVHNode **nodes, int to zero_v3(fc); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; SculptUndoNode *unode; @@ -1680,8 +1680,8 @@ static void calc_flatten_center(Sculpt *sd, Object *ob, PBVHNode **nodes, int to /* this calculates flatten center and area normal together, * amortizing the memory bandwidth and loop overhead to calculate both at the same time */ static void calc_area_normal_and_flatten_center(Sculpt *sd, Object *ob, - PBVHNode **nodes, int totnode, - float an[3], float fc[3]) + PBVHNode **nodes, int totnode, + float an[3], float fc[3]) { SculptSession *ss = ob->sculpt; int n; @@ -1701,7 +1701,7 @@ static void calc_area_normal_and_flatten_center(Sculpt *sd, Object *ob, zero_v3(fc); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; SculptBrushTest test; SculptUndoNode *unode; @@ -1785,7 +1785,7 @@ static void calc_sculpt_plane(Sculpt *sd, Object *ob, PBVHNode **nodes, int totn if (ss->cache->mirror_symmetry_pass == 0 && ss->cache->radial_symmetry_pass == 0 && - (ss->cache->first_time || !(brush->flag & BRUSH_ORIGINAL_NORMAL))) + (ss->cache->first_time || !(brush->flag & BRUSH_ORIGINAL_NORMAL))) { switch (brush->sculpt_plane) { case SCULPT_DISP_DIR_VIEW: @@ -1859,7 +1859,7 @@ static void point_plane_project(float intr[3], float co[3], float plane_normal[3 static int plane_trim(StrokeCache *cache, Brush *brush, float val[3]) { - return !(brush->flag & BRUSH_PLANE_TRIM) || (dot_v3v3(val, val) <= cache->radius_squared*cache->plane_trim_squared); + return !(brush->flag & BRUSH_PLANE_TRIM) || (dot_v3v3(val, val) <= cache->radius_squared * cache->plane_trim_squared); } static int plane_point_side_flip(float co[3], float plane_normal[3], float plane_center[3], int flip) @@ -1880,12 +1880,12 @@ static int plane_point_side(float co[3], float plane_normal[3], float plane_cent float delta[3]; sub_v3_v3v3(delta, co, plane_center); - return dot_v3v3(plane_normal, delta) <= 0.0f; + return dot_v3v3(plane_normal, delta) <= 0.0f; } static float get_offset(Sculpt *sd, SculptSession *ss) { - Brush* brush = paint_brush(&sd->paint); + Brush *brush = paint_brush(&sd->paint); float rv = brush->plane_offset; @@ -1917,7 +1917,7 @@ static void do_flatten_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno calc_sculpt_plane(sd, ob, nodes, totnode, an, fc); - displace = radius*offset; + displace = radius * offset; mul_v3_v3v3(temp, an, ss->cache->scale); mul_v3_fl(temp, displace); @@ -1925,11 +1925,11 @@ static void do_flatten_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) for (n = 0; n < totnode; n++) { - PBVHVertexIter vd; + PBVHVertexIter vd; SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); @@ -1943,8 +1943,8 @@ static void do_flatten_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno sub_v3_v3v3(val, intr, vd.co); if (plane_trim(ss->cache, brush, val)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist), - an, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, sqrt(test.dist), + an, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], val, fade); @@ -1986,7 +1986,7 @@ static void do_clay_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) radius = -radius; } - displace = radius * (0.25f+offset); + displace = radius * (0.25f + offset); mul_v3_v3v3(temp, an, ss->cache->scale); mul_v3_fl(temp, displace); @@ -2000,7 +2000,7 @@ static void do_clay_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); @@ -2015,9 +2015,9 @@ static void do_clay_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) sub_v3_v3v3(val, intr, vd.co); if (plane_trim(ss->cache, brush, val)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, - sqrt(test.dist), - an, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, + sqrt(test.dist), + an, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], val, fade); @@ -2073,7 +2073,7 @@ static void do_clay_strips_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int t radius = -radius; } - displace = radius * (0.25f+offset); + displace = radius * (0.25f + offset); mul_v3_v3v3(temp, sn, ss->cache->scale); mul_v3_fl(temp, displace); @@ -2101,7 +2101,7 @@ static void do_clay_strips_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int t SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); @@ -2116,9 +2116,9 @@ static void do_clay_strips_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int t sub_v3_v3v3(val, intr, vd.co); if (plane_trim(ss->cache, brush, val)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, - ss->cache->radius*test.dist, - an, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, + ss->cache->radius * test.dist, + an, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], val, fade); @@ -2152,7 +2152,7 @@ static void do_fill_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) calc_sculpt_plane(sd, ob, nodes, totnode, an, fc); - displace = radius*offset; + displace = radius * offset; mul_v3_v3v3(temp, an, ss->cache->scale); mul_v3_fl(temp, displace); @@ -2164,7 +2164,7 @@ static void do_fill_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); @@ -2179,9 +2179,9 @@ static void do_fill_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) sub_v3_v3v3(val, intr, vd.co); if (plane_trim(ss->cache, brush, val)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, - sqrt(test.dist), - an, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, + sqrt(test.dist), + an, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], val, fade); @@ -2215,7 +2215,7 @@ static void do_scrape_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod calc_sculpt_plane(sd, ob, nodes, totnode, an, fc); - displace = -radius*offset; + displace = -radius * offset; mul_v3_v3v3(temp, an, ss->cache->scale); mul_v3_fl(temp, displace); @@ -2227,7 +2227,7 @@ static void do_scrape_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod SculptBrushTest test; float (*proxy)[3]; - proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; + proxy = BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co; sculpt_brush_test_init(ss, &test); @@ -2242,9 +2242,9 @@ static void do_scrape_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod sub_v3_v3v3(val, intr, vd.co); if (plane_trim(ss->cache, brush, val)) { - const float fade = bstrength*tex_strength(ss, brush, vd.co, - sqrt(test.dist), - an, vd.no, vd.fno); + const float fade = bstrength * tex_strength(ss, brush, vd.co, + sqrt(test.dist), + an, vd.no, vd.fno); mul_v3_v3fl(proxy[vd.i], val, fade); @@ -2260,36 +2260,36 @@ static void do_scrape_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3]) { - Mesh *me= (Mesh*)ob->data; - float (*ofs)[3]= NULL; - int a, is_basis= 0; + Mesh *me = (Mesh *)ob->data; + float (*ofs)[3] = NULL; + int a, is_basis = 0; KeyBlock *currkey; /* for relative keys editing of base should update other keys */ if (me->key->type == KEY_RELATIVE) - for (currkey = me->key->block.first; currkey; currkey= currkey->next) - if (ob->shapenr-1 == currkey->relative) { - is_basis= 1; + for (currkey = me->key->block.first; currkey; currkey = currkey->next) + if (ob->shapenr - 1 == currkey->relative) { + is_basis = 1; break; } if (is_basis) { - ofs= key_to_vertcos(ob, kb); + ofs = key_to_vertcos(ob, kb); /* calculate key coord offsets (from previous location) */ - for (a= 0; a < me->totvert; a++) { + for (a = 0; a < me->totvert; a++) { sub_v3_v3v3(ofs[a], vertCos[a], ofs[a]); } /* apply offsets on other keys */ currkey = me->key->block.first; while (currkey) { - int apply_offset = ((currkey != kb) && (ob->shapenr-1 == currkey->relative)); + int apply_offset = ((currkey != kb) && (ob->shapenr - 1 == currkey->relative)); if (apply_offset) offset_to_key(ob, currkey, ofs); - currkey= currkey->next; + currkey = currkey->next; } MEM_freeN(ofs); @@ -2297,9 +2297,9 @@ void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3]) /* modifying of basis key should update mesh */ if (kb == me->key->refkey) { - MVert *mvert= me->mvert; + MVert *mvert = me->mvert; - for (a= 0; a < me->totvert; a++, mvert++) + for (a = 0; a < me->totvert; a++, mvert++) copy_v3_v3(mvert->co, vertCos[a]); mesh_calc_normals_mapping(me->mvert, me->totvert, me->mloop, me->mpoly, me->totloop, me->totpoly, NULL, NULL, 0, NULL, NULL); @@ -2326,69 +2326,69 @@ static void do_brush_action(Sculpt *sd, Object *ob, Brush *brush) /* Only act if some verts are inside the brush area */ if (totnode) { #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n= 0; n < totnode; n++) { + for (n = 0; n < totnode; n++) { sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS); BLI_pbvh_node_mark_update(nodes[n]); } /* 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: - do_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_FILL: - do_fill_brush(sd, ob, nodes, totnode); - break; - case SCULPT_TOOL_SCRAPE: - do_scrape_brush(sd, ob, nodes, totnode); - break; + switch (brush->sculpt_tool) { + case SCULPT_TOOL_DRAW: + do_draw_brush(sd, ob, nodes, totnode); + break; + case SCULPT_TOOL_SMOOTH: + do_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_FILL: + do_fill_brush(sd, ob, nodes, totnode); + break; + case SCULPT_TOOL_SCRAPE: + do_scrape_brush(sd, ob, nodes, totnode); + break; } if (brush->sculpt_tool != SCULPT_TOOL_SMOOTH && brush->autosmooth_factor > 0) { if (brush->flag & BRUSH_INVERSE_SMOOTH_PRESSURE) { - smooth(sd, ob, nodes, totnode, brush->autosmooth_factor*(1-ss->cache->pressure)); + smooth(sd, ob, nodes, totnode, brush->autosmooth_factor * (1 - ss->cache->pressure)); } else { smooth(sd, ob, nodes, totnode, brush->autosmooth_factor); @@ -2403,9 +2403,9 @@ static void do_brush_action(Sculpt *sd, Object *ob, Brush *brush) static void sculpt_flush_pbvhvert_deform(Object *ob, PBVHVertexIter *vd) { SculptSession *ss = ob->sculpt; - Mesh *me= ob->data; + Mesh *me = ob->data; float disp[3], newco[3]; - int index= vd->vert_indices[vd->i]; + int index = vd->vert_indices[vd->i]; sub_v3_v3v3(disp, vd->co, ss->deform_cos[index]); mul_m3_v3(ss->deform_imats[index], disp); @@ -2421,8 +2421,8 @@ static void sculpt_flush_pbvhvert_deform(Object *ob, PBVHVertexIter *vd) static void sculpt_combine_proxies(Sculpt *sd, Object *ob) { SculptSession *ss = ob->sculpt; - Brush *brush= paint_brush(&sd->paint); - PBVHNode** nodes; + Brush *brush = paint_brush(&sd->paint); + PBVHNode **nodes; int totnode, n; BLI_pbvh_gather_proxies(ss->pbvh, &nodes, &totnode); @@ -2433,14 +2433,14 @@ static void sculpt_combine_proxies(Sculpt *sd, Object *ob) SCULPT_TOOL_ROTATE, SCULPT_TOOL_THUMB)); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n= 0; n < totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; - PBVHProxyNode* proxies; + PBVHProxyNode *proxies; int proxy_count; float (*orco)[3]; if (use_orco) - orco= sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS)->co; + orco = sculpt_undo_push_node(ob, nodes[n], SCULPT_UNDO_COORDS)->co; BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count); @@ -2453,7 +2453,7 @@ static void sculpt_combine_proxies(Sculpt *sd, Object *ob) else copy_v3_v3(val, vd.co); - for (p= 0; p < proxy_count; p++) + for (p = 0; p < proxy_count; p++) add_v3_v3(val, proxies[p].co[vd.i]); sculpt_clip(sd, ss, vd.co, val); @@ -2494,31 +2494,31 @@ static void sculpt_update_keyblock(Object *ob) static void sculpt_flush_stroke_deform(Sculpt *sd, Object *ob) { SculptSession *ss = ob->sculpt; - Brush *brush= paint_brush(&sd->paint); + Brush *brush = paint_brush(&sd->paint); if (ELEM(brush->sculpt_tool, SCULPT_TOOL_SMOOTH, SCULPT_TOOL_LAYER)) { /* this brushes aren't using proxies, so sculpt_combine_proxies() wouldn't * propagate needed deformation to original base */ int n, totnode; - Mesh *me= (Mesh*)ob->data; - PBVHNode** nodes; - float (*vertCos)[3]= NULL; + Mesh *me = (Mesh *)ob->data; + PBVHNode **nodes; + float (*vertCos)[3] = NULL; if (ss->kb) - vertCos= MEM_callocN(sizeof(*vertCos)*me->totvert, "flushStrokeDeofrm keyVerts"); + vertCos = MEM_callocN(sizeof(*vertCos) * me->totvert, "flushStrokeDeofrm keyVerts"); BLI_pbvh_search_gather(ss->pbvh, NULL, NULL, &nodes, &totnode); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n= 0; n < totnode; n++) { + for (n = 0; n < totnode; n++) { PBVHVertexIter vd; BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) { sculpt_flush_pbvhvert_deform(ob, &vd); if (vertCos) { - int index= vd.vert_indices[vd.i]; + int index = vd.vert_indices[vd.i]; copy_v3_v3(vertCos[index], ss->orig_cos[index]); } } @@ -2545,8 +2545,8 @@ static void sculpt_flush_stroke_deform(Sculpt *sd, Object *ob) /* Flip all the editdata across the axis/axes specified by symm. Used to * calculate multiple modifications to the mesh when symmetry is enabled. */ static void calc_brushdata_symm(Sculpt *sd, StrokeCache *cache, const char symm, - const char axis, const float angle, - const float UNUSED(feather)) + const char axis, const float angle, + const float UNUSED(feather)) { (void)sd; /* unused */ @@ -2557,14 +2557,14 @@ static void calc_brushdata_symm(Sculpt *sd, StrokeCache *cache, const char symm, /* XXX This reduces the length of the grab delta if it approaches the line of symmetry XXX However, a different approach appears to be needed if (sd->flags & SCULPT_SYMMETRY_FEATHER) { - float frac = 1.0f/max_overlap_count(sd); - float reduce = (feather-frac)/(1-frac); + float frac = 1.0f/max_overlap_count(sd); + float reduce = (feather-frac)/(1-frac); - printf("feather: %f frac: %f reduce: %f\n", feather, frac, reduce); + printf("feather: %f frac: %f reduce: %f\n", feather, frac, reduce); - if (frac < 1) - mul_v3_fl(cache->grab_delta_symmetry, reduce); - } */ + if (frac < 1) + mul_v3_fl(cache->grab_delta_symmetry, reduce); + } */ unit_m4(cache->symm_rot_mat); unit_m4(cache->symm_rot_mat_inv); @@ -2579,15 +2579,15 @@ static void calc_brushdata_symm(Sculpt *sd, StrokeCache *cache, const char symm, } static void do_radial_symmetry(Sculpt *sd, Object *ob, Brush *brush, - const char symm, const int axis, - const float feather) + const char symm, const int axis, + const float feather) { SculptSession *ss = ob->sculpt; int i; - for (i = 1; i < sd->radial_symm[axis-'X']; ++i) { - const float angle = 2*M_PI*i/sd->radial_symm[axis-'X']; - ss->cache->radial_symmetry_pass= i; + for (i = 1; i < sd->radial_symm[axis - 'X']; ++i) { + const float angle = 2 * M_PI * i / sd->radial_symm[axis - 'X']; + ss->cache->radial_symmetry_pass = i; calc_brushdata_symm(sd, ss->cache, symm, axis, angle, feather); do_brush_action(sd, ob, brush); } @@ -2616,15 +2616,15 @@ static void do_symmetrical_brush_actions(Sculpt *sd, Object *ob) float feather = calc_symmetry_feather(sd, ss->cache); - cache->bstrength= brush_strength(sd, cache, feather); + cache->bstrength = brush_strength(sd, cache, feather); - cache->symmetry= symm; + cache->symmetry = symm; /* symm is a bit combination of XYZ - 1 is mirror X; 2 is Y; 3 is XY; 4 is Z; 5 is XZ; 6 is YZ; 7 is XYZ */ for (i = 0; i <= symm; ++i) { if (i == 0 || (symm & i && (symm != 5 || i != 3) && (symm != 6 || (i != 3 && i != 5)))) { - cache->mirror_symmetry_pass= i; - cache->radial_symmetry_pass= 0; + cache->mirror_symmetry_pass = i; + cache->radial_symmetry_pass = 0; calc_brushdata_symm(sd, cache, i, 0, 0, feather); do_brush_action(sd, ob, brush); @@ -2643,21 +2643,21 @@ static void do_symmetrical_brush_actions(Sculpt *sd, Object *ob) if (ss->modifiers_active) sculpt_flush_stroke_deform(sd, ob); - cache->first_time= 0; + cache->first_time = 0; } static void sculpt_update_tex(const Scene *scene, Sculpt *sd, SculptSession *ss) { Brush *brush = paint_brush(&sd->paint); - const int radius= brush_size(scene, brush); + const int radius = brush_size(scene, brush); if (ss->texcache) { MEM_freeN(ss->texcache); - ss->texcache= NULL; + ss->texcache = NULL; } /* Need to allocate a bigger buffer for bigger brush size */ - ss->texcache_side = 2*radius; + ss->texcache_side = 2 * radius; if (!ss->texcache || ss->texcache_side > ss->texcache_actual) { ss->texcache = brush_gen_texture_cache(brush, radius); ss->texcache_actual = ss->texcache_side; @@ -2668,21 +2668,21 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_ { DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH); SculptSession *ss = ob->sculpt; - MultiresModifierData *mmd= sculpt_multires_active(scene, ob); + MultiresModifierData *mmd = sculpt_multires_active(scene, ob); - ss->modifiers_active= sculpt_modifiers_active(scene, sd, ob); + ss->modifiers_active = sculpt_modifiers_active(scene, sd, ob); - if (!mmd) ss->kb= ob_get_keyblock(ob); - else ss->kb= NULL; + if (!mmd) ss->kb = ob_get_keyblock(ob); + else ss->kb = NULL; if (mmd) { ss->multires = mmd; ss->totvert = dm->getNumVerts(dm); ss->totpoly = dm->getNumPolys(dm); - ss->mvert= NULL; - ss->mpoly= NULL; - ss->mloop= NULL; - ss->face_normals= NULL; + ss->mvert = NULL; + ss->mpoly = NULL; + ss->mloop = NULL; + ss->face_normals = NULL; } else { Mesh *me = get_mesh(ob); @@ -2699,7 +2699,7 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_ BKE_mesh_tessface_ensure(ob->data); ss->pbvh = dm->getPBVH(ob, dm); - ss->pmap = (need_pmap && dm->getPolyMap)? dm->getPolyMap(ob, dm): NULL; + ss->pmap = (need_pmap && dm->getPolyMap) ? dm->getPolyMap(ob, dm) : NULL; if (ss->modifiers_active) { if (!ss->orig_cos) { @@ -2713,7 +2713,7 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_ crazyspace_build_sculpt(scene, ob, &ss->deform_imats, &ss->deform_cos); BLI_pbvh_apply_vertCos(ss->pbvh, ss->deform_cos); - for (a = 0; a < ((Mesh*)ob->data)->totvert; ++a) + for (a = 0; a < ((Mesh *)ob->data)->totvert; ++a) invert_m3(ss->deform_imats[a]); } } @@ -2721,7 +2721,7 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_ /* if pbvh is deformed, key block is already applied to it */ if (ss->kb && !BLI_pbvh_isDeformed(ss->pbvh)) { - float (*vertCos)[3]= key_to_vertcos(ob, ss->kb); + float (*vertCos)[3] = key_to_vertcos(ob, ss->kb); if (vertCos) { /* apply shape keys coordinates to PBVH */ @@ -2746,39 +2746,39 @@ static const char *sculpt_tool_name(Sculpt *sd) { Brush *brush = paint_brush(&sd->paint); - switch(brush->sculpt_tool) { - case SCULPT_TOOL_DRAW: - return "Draw Brush"; break; - case SCULPT_TOOL_SMOOTH: - return "Smooth Brush"; break; - case SCULPT_TOOL_CREASE: - return "Crease Brush"; break; - case SCULPT_TOOL_BLOB: - return "Blob Brush"; break; - case SCULPT_TOOL_PINCH: - return "Pinch Brush"; break; - case SCULPT_TOOL_INFLATE: - return "Inflate Brush"; break; - case SCULPT_TOOL_GRAB: - return "Grab Brush"; break; - case SCULPT_TOOL_NUDGE: - return "Nudge Brush"; break; - case SCULPT_TOOL_THUMB: - return "Thumb Brush"; break; - case SCULPT_TOOL_LAYER: - return "Layer Brush"; break; - case SCULPT_TOOL_FLATTEN: - return "Flatten Brush"; break; - case SCULPT_TOOL_CLAY: - return "Clay Brush"; break; - case SCULPT_TOOL_CLAY_STRIPS: - return "Clay Strips Brush"; break; - case SCULPT_TOOL_FILL: - return "Fill Brush"; break; - case SCULPT_TOOL_SCRAPE: - return "Scrape Brush"; break; - default: - return "Sculpting"; break; + switch (brush->sculpt_tool) { + case SCULPT_TOOL_DRAW: + return "Draw Brush"; break; + case SCULPT_TOOL_SMOOTH: + return "Smooth Brush"; break; + case SCULPT_TOOL_CREASE: + return "Crease Brush"; break; + case SCULPT_TOOL_BLOB: + return "Blob Brush"; break; + case SCULPT_TOOL_PINCH: + return "Pinch Brush"; break; + case SCULPT_TOOL_INFLATE: + return "Inflate Brush"; break; + case SCULPT_TOOL_GRAB: + return "Grab Brush"; break; + case SCULPT_TOOL_NUDGE: + return "Nudge Brush"; break; + case SCULPT_TOOL_THUMB: + return "Thumb Brush"; break; + case SCULPT_TOOL_LAYER: + return "Layer Brush"; break; + case SCULPT_TOOL_FLATTEN: + return "Flatten Brush"; break; + case SCULPT_TOOL_CLAY: + return "Clay Brush"; break; + case SCULPT_TOOL_CLAY_STRIPS: + return "Clay Strips Brush"; break; + case SCULPT_TOOL_FILL: + return "Fill Brush"; break; + case SCULPT_TOOL_SCRAPE: + return "Scrape Brush"; break; + default: + return "Sculpting"; break; } } @@ -2799,10 +2799,10 @@ static void sculpt_init_mirror_clipping(Object *ob, SculptSession *ss) ModifierData *md; int i; - for (md= ob->modifiers.first; md; md= md->next) { - if (md->type==eModifierType_Mirror && - (md->mode & eModifierMode_Realtime)) { - MirrorModifierData *mmd = (MirrorModifierData*)md; + for (md = ob->modifiers.first; md; md = md->next) { + if (md->type == eModifierType_Mirror && + (md->mode & eModifierMode_Realtime)) { + MirrorModifierData *mmd = (MirrorModifierData *)md; if (mmd->flag & MOD_MIR_CLIPPING) { /* check each axis for mirroring */ @@ -2813,9 +2813,9 @@ static void sculpt_init_mirror_clipping(Object *ob, SculptSession *ss) /* update the clip tolerance */ if (mmd->tolerance > - ss->cache->clip_tolerance[i]) + ss->cache->clip_tolerance[i]) ss->cache->clip_tolerance[i] = - mmd->tolerance; + mmd->tolerance; } } } @@ -2824,12 +2824,12 @@ static void sculpt_init_mirror_clipping(Object *ob, SculptSession *ss) } /* Initialize the stroke cache invariants from operator properties */ -static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSession *ss, wmOperator *op, wmEvent *event) +static void sculpt_update_cache_invariants(bContext *C, Sculpt *sd, SculptSession *ss, wmOperator *op, wmEvent *event) { StrokeCache *cache = MEM_callocN(sizeof(StrokeCache), "stroke cache"); Brush *brush = paint_brush(&sd->paint); ViewContext *vc = paint_stroke_view_context(op->customdata); - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); int i; int mode; @@ -2867,12 +2867,12 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio /* Alt-Smooth */ if (ss->cache->alt_smooth) { - Paint *p= &sd->paint; + Paint *p = &sd->paint; Brush *br; - BLI_strncpy(cache->saved_active_brush_name, brush->id.name+2, sizeof(cache->saved_active_brush_name)); + BLI_strncpy(cache->saved_active_brush_name, brush->id.name + 2, sizeof(cache->saved_active_brush_name)); - br= (Brush *)find_id("BR", "Smooth"); + br = (Brush *)find_id("BR", "Smooth"); if (br) { paint_brush_set(p, br); brush = br; @@ -2897,8 +2897,8 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio /* not supported yet for multires */ if (!ss->multires && !ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) { if (!ss->layer_co) - ss->layer_co= MEM_mallocN(sizeof(float) * 3 * ss->totvert, - "sculpt mesh vertices copy"); + ss->layer_co = MEM_mallocN(sizeof(float) * 3 * ss->totvert, + "sculpt mesh vertices copy"); if (ss->deform_cos) memcpy(ss->layer_co, ss->deform_cos, ss->totvert); else { @@ -2913,7 +2913,7 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio if (brush->flag & BRUSH_ANCHORED) { if (ss->face_normals) { float *fn = ss->face_normals; - cache->face_norms= MEM_mallocN(sizeof(float) * 3 * ss->totpoly, "Sculpt face norms"); + cache->face_norms = MEM_mallocN(sizeof(float) * 3 * ss->totpoly, "Sculpt face norms"); for (i = 0; i < ss->totpoly; ++i, fn += 3) copy_v3_v3(cache->face_norms[i], fn); } @@ -2922,17 +2922,17 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio } if (ELEM8(brush->sculpt_tool, - SCULPT_TOOL_DRAW, SCULPT_TOOL_CREASE, SCULPT_TOOL_BLOB, - SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, - SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_ROTATE)) + SCULPT_TOOL_DRAW, SCULPT_TOOL_CREASE, SCULPT_TOOL_BLOB, + SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, + SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_ROTATE)) if (!(brush->flag & BRUSH_ACCUMULATE)) cache->original = 1; cache->special_rotation = (brush->flag & BRUSH_RAKE) ? sd->last_angle : 0; - cache->first_time= 1; + cache->first_time = 1; - cache->vertex_rotation= 0; + cache->vertex_rotation = 0; } static void sculpt_update_brush_delta(Sculpt *sd, Object *ob, Brush *brush) @@ -2946,9 +2946,9 @@ static void sculpt_update_brush_delta(Sculpt *sd, Object *ob, Brush *brush) int tool = brush->sculpt_tool; if (ELEM5(tool, - SCULPT_TOOL_GRAB, SCULPT_TOOL_NUDGE, - SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_SNAKE_HOOK, - SCULPT_TOOL_THUMB)) { + SCULPT_TOOL_GRAB, SCULPT_TOOL_NUDGE, + SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_SNAKE_HOOK, + SCULPT_TOOL_THUMB)) { float grab_location[3], imat[4][4], delta[3], loc[3]; if (cache->first_time) { @@ -2966,30 +2966,30 @@ static void sculpt_update_brush_delta(Sculpt *sd, Object *ob, Brush *brush) /* compute delta to move verts by */ if (!cache->first_time) { - switch(tool) { - case SCULPT_TOOL_GRAB: - case SCULPT_TOOL_THUMB: - sub_v3_v3v3(delta, grab_location, cache->old_grab_location); - invert_m4_m4(imat, ob->obmat); - mul_mat3_m4_v3(imat, delta); - add_v3_v3(cache->grab_delta, delta); - break; - case SCULPT_TOOL_CLAY_STRIPS: - case SCULPT_TOOL_NUDGE: - case SCULPT_TOOL_SNAKE_HOOK: - if (brush->flag & BRUSH_ANCHORED) { - float orig[3]; - mul_v3_m4v3(orig, ob->obmat, cache->orig_grab_location); - sub_v3_v3v3(cache->grab_delta, grab_location, orig); - } - else { - sub_v3_v3v3(cache->grab_delta, grab_location, - cache->old_grab_location); - } + switch (tool) { + case SCULPT_TOOL_GRAB: + case SCULPT_TOOL_THUMB: + sub_v3_v3v3(delta, grab_location, cache->old_grab_location); + invert_m4_m4(imat, ob->obmat); + mul_mat3_m4_v3(imat, delta); + add_v3_v3(cache->grab_delta, delta); + break; + case SCULPT_TOOL_CLAY_STRIPS: + case SCULPT_TOOL_NUDGE: + case SCULPT_TOOL_SNAKE_HOOK: + if (brush->flag & BRUSH_ANCHORED) { + float orig[3]; + mul_v3_m4v3(orig, ob->obmat, cache->orig_grab_location); + sub_v3_v3v3(cache->grab_delta, grab_location, orig); + } + else { + sub_v3_v3v3(cache->grab_delta, grab_location, + cache->old_grab_location); + } - invert_m4_m4(imat, ob->obmat); - mul_mat3_m4_v3(imat, cache->grab_delta); - break; + invert_m4_m4(imat, ob->obmat); + mul_mat3_m4_v3(imat, cache->grab_delta); + break; } } else { @@ -3016,8 +3016,8 @@ static void sculpt_update_brush_delta(Sculpt *sd, Object *ob, Brush *brush) /* Initialize the stroke cache variants from operator properties */ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, - struct PaintStroke *stroke, - PointerRNA *ptr) + struct PaintStroke *stroke, + PointerRNA *ptr) { Scene *scene = CTX_data_scene(C); SculptSession *ss = ob->sculpt; @@ -3029,10 +3029,10 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, /* RNA_float_get_array(ptr, "location", cache->traced_location); */ if (cache->first_time || - !((brush->flag & BRUSH_ANCHORED)|| - (brush->sculpt_tool == SCULPT_TOOL_SNAKE_HOOK)|| + !((brush->flag & BRUSH_ANCHORED) || + (brush->sculpt_tool == SCULPT_TOOL_SNAKE_HOOK) || (brush->sculpt_tool == SCULPT_TOOL_ROTATE)) - ) + ) { RNA_float_get_array(ptr, "location", cache->true_location); } @@ -3050,41 +3050,42 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, /* Truly temporary data that isn't stored in properties */ - sd->draw_pressure= 1; - sd->pressure_value= cache->pressure; + sd->draw_pressure = 1; + sd->pressure_value = cache->pressure; cache->previous_pixel_radius = cache->pixel_radius; cache->pixel_radius = brush_size(scene, brush); if (cache->first_time) { if (!brush_use_locked_size(scene, brush)) { - cache->initial_radius= paint_calc_object_space_radius(cache->vc, cache->true_location, brush_size(scene, brush)); + cache->initial_radius = paint_calc_object_space_radius(cache->vc, cache->true_location, brush_size(scene, brush)); brush_set_unprojected_radius(scene, brush, cache->initial_radius); } else { - cache->initial_radius= brush_unprojected_radius(scene, brush); + cache->initial_radius = brush_unprojected_radius(scene, brush); } } if (brush_use_size_pressure(scene, brush)) { cache->pixel_radius *= cache->pressure; - cache->radius= cache->initial_radius * cache->pressure; + cache->radius = cache->initial_radius * cache->pressure; } else - cache->radius= cache->initial_radius; + cache->radius = cache->initial_radius; - cache->radius_squared = cache->radius*cache->radius; + cache->radius_squared = cache->radius * cache->radius; if (!(brush->flag & BRUSH_ANCHORED || - ELEM4(brush->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_SNAKE_HOOK, - SCULPT_TOOL_THUMB, SCULPT_TOOL_ROTATE))) { + ELEM4(brush->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_SNAKE_HOOK, + SCULPT_TOOL_THUMB, SCULPT_TOOL_ROTATE))) + { copy_v2_v2(cache->tex_mouse, cache->mouse); if ( (brush->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) && - (brush->flag & BRUSH_RANDOM_ROTATION) && - !(brush->flag & BRUSH_RAKE)) + (brush->flag & BRUSH_RANDOM_ROTATION) && + !(brush->flag & BRUSH_RAKE)) { - cache->special_rotation = 2.0f*(float)M_PI*BLI_frand(); + cache->special_rotation = 2.0f * (float)M_PI * BLI_frand(); } } @@ -3094,7 +3095,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, dx = cache->mouse[0] - cache->initial_mouse[0]; dy = cache->mouse[1] - cache->initial_mouse[1]; - sd->anchored_size = cache->pixel_radius = sqrt(dx*dx + dy*dy); + sd->anchored_size = cache->pixel_radius = sqrt(dx * dx + dy * dy); cache->special_rotation = atan2(dx, dy) + M_PI; @@ -3119,10 +3120,10 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, if (!hit) copy_v2_v2(sd->anchored_initial_mouse, cache->initial_mouse); - cache->radius= paint_calc_object_space_radius(paint_stroke_view_context(stroke), - cache->true_location, - cache->pixel_radius); - cache->radius_squared = cache->radius*cache->radius; + cache->radius = paint_calc_object_space_radius(paint_stroke_view_context(stroke), + cache->true_location, + cache->pixel_radius); + cache->radius_squared = cache->radius * cache->radius; copy_v3_v3(sd->anchored_location, cache->true_location); @@ -3139,11 +3140,11 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, if (cache->first_time) { copy_v2_v2(cache->last_rake, cache->mouse); } - else if (dx*dx + dy*dy >= r*r) { + else if (dx * dx + dy * dy >= r * r) { cache->special_rotation = atan2(dx, dy); - cache->last_rake[0] = u*cache->last_rake[0] + v*cache->mouse[0]; - cache->last_rake[1] = u*cache->last_rake[1] + v*cache->mouse[1]; + cache->last_rake[0] = u * cache->last_rake[0] + v * cache->mouse[0]; + cache->last_rake[1] = u * cache->last_rake[1] + v * cache->mouse[1]; } } @@ -3184,16 +3185,16 @@ typedef struct { int original; } SculptRaycastData; -static void sculpt_raycast_cb(PBVHNode *node, void *data_v, float* tmin) +static void sculpt_raycast_cb(PBVHNode *node, void *data_v, float *tmin) { if (BLI_pbvh_node_get_tmin(node) < *tmin) { SculptRaycastData *srd = data_v; - float (*origco)[3]= NULL; + float (*origco)[3] = NULL; if (srd->original && srd->ss->cache) { /* intersect with coordinates from before we started stroke */ - SculptUndoNode *unode= sculpt_undo_get_node(node); - origco= (unode)? unode->co: NULL; + SculptUndoNode *unode = sculpt_undo_get_node(node); + origco = (unode) ? unode->co : NULL; } if (BLI_pbvh_node_raycast(srd->ss->pbvh, node, origco, srd->ray_start, srd->ray_normal, &srd->dist)) { @@ -3236,14 +3237,14 @@ int sculpt_stroke_get_location(bContext *C, float out[3], float mouse[2]) mul_m4_v3(obimat, ray_end); sub_v3_v3v3(ray_normal, ray_end, ray_start); - dist= normalize_v3(ray_normal); + dist = normalize_v3(ray_normal); srd.ss = vc.obact->sculpt; srd.ray_start = ray_start; srd.ray_normal = ray_normal; srd.dist = dist; srd.hit = 0; - srd.original = (cache)? cache->original: 0; + srd.original = (cache) ? cache->original : 0; BLI_pbvh_raycast(ss->pbvh, sculpt_raycast_cb, &srd, ray_start, ray_normal, srd.original); @@ -3257,11 +3258,11 @@ int sculpt_stroke_get_location(bContext *C, float out[3], float mouse[2]) static void sculpt_brush_init_tex(const Scene *scene, Sculpt *sd, SculptSession *ss) { Brush *brush = paint_brush(&sd->paint); - MTex *mtex= &brush->mtex; + MTex *mtex = &brush->mtex; /* init mtex nodes */ if (mtex->tex && mtex->tex->nodetree) - ntreeTexBeginExecTree(mtex->tex->nodetree, 1); /* has internal flag to detect it only does it once */ + ntreeTexBeginExecTree(mtex->tex->nodetree, 1); /* has internal flag to detect it only does it once */ /* TODO: Shouldn't really have to do this at the start of every * stroke, but sculpt would need some sort of notification when @@ -3271,19 +3272,19 @@ static void sculpt_brush_init_tex(const Scene *scene, Sculpt *sd, SculptSession static int sculpt_brush_stroke_init(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Object *ob= CTX_data_active_object(C); + Scene *scene = CTX_data_scene(C); + Object *ob = CTX_data_active_object(C); Sculpt *sd = CTX_data_tool_settings(C)->sculpt; SculptSession *ss = CTX_data_active_object(C)->sculpt; Brush *brush = paint_brush(&sd->paint); - int mode= RNA_enum_get(op->ptr, "mode"); - int is_smooth= 0; + int mode = RNA_enum_get(op->ptr, "mode"); + int is_smooth = 0; view3d_operator_needs_opengl(C); sculpt_brush_init_tex(scene, sd, ss); - is_smooth|= mode == BRUSH_STROKE_SMOOTH; - is_smooth|= brush->sculpt_tool == SCULPT_TOOL_SMOOTH; + is_smooth |= mode == BRUSH_STROKE_SMOOTH; + is_smooth |= brush->sculpt_tool == SCULPT_TOOL_SMOOTH; sculpt_update_mesh_elements(scene, sd, ob, is_smooth); @@ -3296,9 +3297,9 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) /* Restore the mesh before continuing with anchored stroke */ if ((brush->flag & BRUSH_ANCHORED) || - (brush->sculpt_tool == SCULPT_TOOL_GRAB && - brush_use_size_pressure(ss->cache->vc->scene, brush)) || - (brush->flag & BRUSH_RESTORE_MESH)) + (brush->sculpt_tool == SCULPT_TOOL_GRAB && + brush_use_size_pressure(ss->cache->vc->scene, brush)) || + (brush->flag & BRUSH_RESTORE_MESH)) { StrokeCache *cache = ss->cache; int i; @@ -3309,10 +3310,10 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) BLI_pbvh_search_gather(ss->pbvh, NULL, NULL, &nodes, &totnode); #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP) - for (n=0; n<totnode; n++) { + for (n = 0; n < totnode; n++) { SculptUndoNode *unode; - unode= sculpt_undo_get_node(nodes[n]); + unode = sculpt_undo_get_node(nodes[n]); if (unode) { PBVHVertexIter vd; @@ -3362,7 +3363,7 @@ static void sculpt_flush_update(bContext *C) BLI_pbvh_update(ss->pbvh, PBVH_UpdateBB, NULL); if (sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r)) { if (ss->cache) - ss->cache->previous_r= r; + ss->cache->previous_r = r; r.xmin += ar->winrct.xmin + 1; r.xmax += ar->winrct.xmin - 1; @@ -3388,11 +3389,11 @@ static int over_mesh(bContext *C, struct wmOperator *UNUSED(op), float x, float } static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op, - wmEvent *event) + wmEvent *event) { /* Don't start the stroke until mouse goes over the mesh. * note: event will only be null when re-executing the saved stroke. */ - if (event==NULL || over_mesh(C, op, event->x, event->y)) { + if (event == NULL || over_mesh(C, op, event->x, event->y)) { Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; Sculpt *sd = CTX_data_tool_settings(C)->sculpt; @@ -3412,7 +3413,7 @@ static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op, int num_procs; num_procs = omp_get_num_procs(); - omp_set_num_threads(2*num_procs); + omp_set_num_threads(2 * num_procs); } #endif @@ -3439,8 +3440,8 @@ static void sculpt_stroke_update_step(bContext *C, struct PaintStroke *stroke, P static void sculpt_brush_exit_tex(Sculpt *sd) { - Brush *brush= paint_brush(&sd->paint); - MTex *mtex= &brush->mtex; + Brush *brush = paint_brush(&sd->paint); + MTex *mtex = &brush->mtex; if (mtex->tex && mtex->tex->nodetree) ntreeTexEndExecTree(mtex->tex->nodetree->execdata, 1); @@ -3448,26 +3449,26 @@ static void sculpt_brush_exit_tex(Sculpt *sd) static void sculpt_stroke_done(bContext *C, struct PaintStroke *UNUSED(stroke)) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; Sculpt *sd = CTX_data_tool_settings(C)->sculpt; /* reset values used to draw brush after completing the stroke */ - sd->draw_anchored= 0; - sd->draw_pressure= 0; - sd->special_rotation= 0; + sd->draw_anchored = 0; + sd->draw_pressure = 0; + sd->special_rotation = 0; /* Finished */ if (ss->cache) { - Brush *brush= paint_brush(&sd->paint); + Brush *brush = paint_brush(&sd->paint); brush->flag &= ~BRUSH_INVERTED; sculpt_stroke_modifiers_check(C, ob); /* Alt-Smooth */ if (ss->cache->alt_smooth) { - Paint *p= &sd->paint; - brush= (Brush *)find_id("BR", ss->cache->saved_active_brush_name); + Paint *p = &sd->paint; + brush = (Brush *)find_id("BR", ss->cache->saved_active_brush_name); if (brush) { paint_brush_set(p, brush); } @@ -3488,10 +3489,10 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *UNUSED(stroke)) ss->partial_redraw = 0; /* try to avoid calling this, only for e.g. linked duplicates now */ - if (((Mesh*)ob->data)->id.us > 1) + if (((Mesh *)ob->data)->id.us > 1) DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); } sculpt_brush_exit_tex(sd); @@ -3514,7 +3515,7 @@ static int sculpt_brush_stroke_invoke(bContext *C, wmOperator *op, wmEvent *even /* For tablet rotation */ ignore_background_click = RNA_boolean_get(op->ptr, - "ignore_background_click"); + "ignore_background_click"); if (ignore_background_click && !over_mesh(C, op, event->x, event->y)) { paint_stroke_free(stroke); @@ -3535,7 +3536,7 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; op->customdata = paint_stroke_new(C, sculpt_stroke_get_location, sculpt_stroke_test_start, - sculpt_stroke_update_step, sculpt_stroke_done, 0); + sculpt_stroke_update_step, sculpt_stroke_done, 0); /* frees op->customdata */ paint_stroke_exec(C, op); @@ -3545,7 +3546,7 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op) static int sculpt_brush_stroke_cancel(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; Sculpt *sd = CTX_data_tool_settings(C)->sculpt; @@ -3587,15 +3588,15 @@ static void SCULPT_OT_brush_stroke(wmOperatorType *ot) /* properties */ RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, - "Stroke", ""); + "Stroke", ""); RNA_def_enum(ot->srna, "mode", stroke_mode_items, BRUSH_STROKE_NORMAL, - "Sculpt Stroke Mode", - "Action taken when a sculpt stroke is made"); + "Sculpt Stroke Mode", + "Action taken when a sculpt stroke is made"); RNA_def_boolean(ot->srna, "ignore_background_click", 0, - "Ignore Background Click", - "Clicks on the background do not start the stroke"); + "Ignore Background Click", + "Clicks on the background do not start the stroke"); } /**** Reset the copy of the mesh that is being sculpted on (currently just for the layer brush) ****/ @@ -3623,7 +3624,7 @@ static void SCULPT_OT_set_persistent_base(wmOperatorType *ot) ot->exec = sculpt_set_persistent_base; ot->poll = sculpt_mode_poll; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /**** Toggle operator for turning sculpt mode on or off ****/ @@ -3640,8 +3641,8 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *UNUSED(op)) Scene *scene = CTX_data_scene(C); ToolSettings *ts = CTX_data_tool_settings(C); Object *ob = CTX_data_active_object(C); - MultiresModifierData *mmd= sculpt_multires_active(scene, ob); - int flush_recalc= 0; + MultiresModifierData *mmd = sculpt_multires_active(scene, ob); + int flush_recalc = 0; /* multires in sculpt mode could have different from object mode subdivision level */ flush_recalc |= mmd && mmd->sculptlvl != mmd->lvl; @@ -3686,7 +3687,7 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *UNUSED(op)) paint_cursor_start(C, sculpt_poll); } - WM_event_add_notifier(C, NC_SCENE|ND_MODE, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_MODE, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -3701,7 +3702,7 @@ static void SCULPT_OT_sculptmode_toggle(wmOperatorType *ot) ot->exec = sculpt_toggle_mode; ot->poll = ED_operator_object_active_editable_mesh; - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } void ED_operatortypes_sculpt(void) diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c index 73fa546b357..5378ce7872a 100644 --- a/source/blender/editors/sculpt_paint/sculpt_undo.c +++ b/source/blender/editors/sculpt_paint/sculpt_undo.c @@ -71,7 +71,7 @@ static void update_cb(PBVHNode *node, void *rebuild) { BLI_pbvh_node_mark_update(node); - if (*((int*)rebuild)) + if (*((int *)rebuild)) BLI_pbvh_node_mark_rebuild_draw(node); BLI_pbvh_node_fully_hidden_set(node, 0); } @@ -89,10 +89,10 @@ static void sculpt_undo_restore_deformed(SculptSession *ss, SculptUndoNode *unod static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNode *unode) { - Scene *scene= CTX_data_scene(C); - Sculpt *sd= CTX_data_tool_settings(C)->sculpt; - Object *ob= CTX_data_active_object(C); - SculptSession *ss= ob->sculpt; + Scene *scene = CTX_data_scene(C); + Sculpt *sd = CTX_data_tool_settings(C)->sculpt; + Object *ob = CTX_data_active_object(C); + SculptSession *ss = ob->sculpt; MVert *mvert; int *index, i, j; @@ -102,14 +102,14 @@ static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNo if (ss->kb && strcmp(ss->kb->name, unode->shapeName)) { /* shape key has been changed before calling undo operator */ - Key *key= ob_get_key(ob); - KeyBlock *kb= key_get_named_keyblock(key, unode->shapeName); + Key *key = ob_get_key(ob); + KeyBlock *kb = key_get_named_keyblock(key, unode->shapeName); if (kb) { - ob->shapenr= BLI_findindex(&key->block, kb) + 1; + ob->shapenr = BLI_findindex(&key->block, kb) + 1; sculpt_update_mesh_elements(scene, sd, ob, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_DATA, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DATA, ob); } else { /* key has been removed -- skip this undo node */ @@ -117,14 +117,14 @@ static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNo } } - index= unode->index; - mvert= ss->mvert; + index = unode->index; + mvert = ss->mvert; if (ss->kb) { float (*vertCos)[3]; - vertCos= key_to_vertcos(ob, ss->kb); + vertCos = key_to_vertcos(ob, ss->kb); - for (i=0; i<unode->totvert; i++) { + for (i = 0; i < unode->totvert; i++) { if (ss->modifiers_active) sculpt_undo_restore_deformed(ss, unode, i, index[i], vertCos[index[i]]); else { if (unode->orig_co) swap_v3_v3(vertCos[index[i]], unode->orig_co[i]); @@ -142,7 +142,7 @@ static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNo MEM_freeN(vertCos); } else { - for (i=0; i<unode->totvert; i++) { + for (i = 0; i < unode->totvert; i++) { if (ss->modifiers_active) sculpt_undo_restore_deformed(ss, unode, i, index[i], mvert[index[i]].co); else { if (unode->orig_co) swap_v3_v3(mvert[index[i]].co, unode->orig_co[i]); @@ -158,14 +158,14 @@ static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNo float (*co)[3]; int gridsize; - grids= dm->getGridData(dm); - gridsize= dm->getGridSize(dm); + grids = dm->getGridData(dm); + gridsize = dm->getGridSize(dm); co = unode->co; - for (j=0; j<unode->totgrid; j++) { - grid= grids[unode->grids[j]]; + for (j = 0; j < unode->totgrid; j++) { + grid = grids[unode->grids[j]]; - for (i=0; i<gridsize*gridsize; i++, co++) + for (i = 0; i < gridsize * gridsize; i++, co++) swap_v3_v3(grid[i].co, co[0]); } } @@ -174,21 +174,21 @@ static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNo } static int sculpt_undo_restore_hidden(bContext *C, DerivedMesh *dm, - SculptUndoNode *unode) + SculptUndoNode *unode) { Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; int i; if (unode->maxvert) { - MVert *mvert= ss->mvert; + MVert *mvert = ss->mvert; - for (i=0; i<unode->totvert; i++) { + for (i = 0; i < unode->totvert; i++) { MVert *v = &mvert[unode->index[i]]; - int uval= BLI_BITMAP_GET(unode->vert_hidden, i); + int uval = BLI_BITMAP_GET(unode->vert_hidden, i); BLI_BITMAP_MODIFY(unode->vert_hidden, i, - v->flag & ME_HIDE); + v->flag & ME_HIDE); if (uval) v->flag |= ME_HIDE; else @@ -200,10 +200,10 @@ static int sculpt_undo_restore_hidden(bContext *C, DerivedMesh *dm, else if (unode->maxgrid && dm->getGridData) { BLI_bitmap *grid_hidden = dm->getGridHidden(dm); - for (i=0; i<unode->totgrid; i++) { + for (i = 0; i < unode->totgrid; i++) { SWAP(BLI_bitmap, - unode->grid_hidden[i], - grid_hidden[unode->grids[i]]); + unode->grid_hidden[i], + grid_hidden[unode->grids[i]]); } } @@ -220,12 +220,12 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb) SculptSession *ss = ob->sculpt; SculptUndoNode *unode; MultiresModifierData *mmd; - int update= 0, rebuild= 1; + int update = 0, rebuild = 1; sculpt_update_mesh_elements(scene, sd, ob, 0); - for (unode=lb->first; unode; unode=unode->next) { - if (!(strcmp(unode->idname, ob->id.name)==0)) + for (unode = lb->first; unode; unode = unode->next) { + if (!(strcmp(unode->idname, ob->id.name) == 0)) continue; /* check if undo data matches current data well enough to @@ -236,48 +236,48 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb) } else if (unode->maxgrid && dm->getGridData) { if ((dm->getNumGrids(dm) != unode->maxgrid) || - (dm->getGridSize(dm) != unode->gridsize)) + (dm->getGridSize(dm) != unode->gridsize)) continue; } else { continue; } - switch(unode->type) { - case SCULPT_UNDO_COORDS: - if (sculpt_undo_restore_coords(C, dm, unode)) - update= 1; - break; - case SCULPT_UNDO_HIDDEN: - if (sculpt_undo_restore_hidden(C, dm, unode)) - rebuild= 1; - break; + switch (unode->type) { + case SCULPT_UNDO_COORDS: + if (sculpt_undo_restore_coords(C, dm, unode)) + update = 1; + break; + case SCULPT_UNDO_HIDDEN: + if (sculpt_undo_restore_hidden(C, dm, unode)) + rebuild = 1; + break; } } if (update || rebuild) { - int tag_update= 0; + int tag_update = 0; /* we update all nodes still, should be more clever, but also * needs to work correct when exiting/entering sculpt mode and * the nodes get recreated, though in that case it could do all */ BLI_pbvh_search_callback(ss->pbvh, NULL, NULL, update_cb, &rebuild); - BLI_pbvh_update(ss->pbvh, PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateRedraw, NULL); + BLI_pbvh_update(ss->pbvh, PBVH_UpdateBB | PBVH_UpdateOriginalBB | PBVH_UpdateRedraw, NULL); - if ((mmd=sculpt_multires_active(scene, ob))) { + if ((mmd = sculpt_multires_active(scene, ob))) { if (rebuild) multires_mark_as_modified(ob, MULTIRES_HIDDEN_MODIFIED); else multires_mark_as_modified(ob, MULTIRES_COORDS_MODIFIED); } - tag_update= ((Mesh*)ob->data)->id.us > 1; + tag_update = ((Mesh *)ob->data)->id.us > 1; if (ss->modifiers_active) { - Mesh *mesh= ob->data; + Mesh *mesh = ob->data; mesh_calc_normals_mapping(mesh->mvert, mesh->totvert, mesh->mloop, mesh->mpoly, mesh->totloop, mesh->totpoly, NULL, NULL, 0, NULL, NULL); free_sculptsession_deformMats(ss); - tag_update|= 1; + tag_update |= 1; } if (tag_update) @@ -293,7 +293,7 @@ static void sculpt_undo_free(ListBase *lb) SculptUndoNode *unode; int i; - for (unode=lb->first; unode; unode=unode->next) { + for (unode = lb->first; unode; unode = unode->next) { if (unode->co) MEM_freeN(unode->co); if (unode->no) @@ -309,7 +309,7 @@ static void sculpt_undo_free(ListBase *lb) if (unode->vert_hidden) MEM_freeN(unode->vert_hidden); if (unode->grid_hidden) { - for (i=0; i<unode->totgrid; i++) { + for (i = 0; i < unode->totgrid; i++) { if (unode->grid_hidden[i]) MEM_freeN(unode->grid_hidden[i]); } @@ -320,13 +320,13 @@ static void sculpt_undo_free(ListBase *lb) SculptUndoNode *sculpt_undo_get_node(PBVHNode *node) { - ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); + ListBase *lb = undo_paint_push_get_list(UNDO_PAINT_MESH); SculptUndoNode *unode; if (!lb) return NULL; - for (unode=lb->first; unode; unode=unode->next) + for (unode = lb->first; unode; unode = unode->next) if (unode->node == node) return unode; @@ -334,19 +334,19 @@ SculptUndoNode *sculpt_undo_get_node(PBVHNode *node) } static void sculpt_undo_alloc_and_store_hidden(PBVH *pbvh, - SculptUndoNode *unode) + SculptUndoNode *unode) { - PBVHNode *node= unode->node; + PBVHNode *node = unode->node; BLI_bitmap *grid_hidden; int i, *grid_indices, totgrid; - grid_hidden= BLI_pbvh_grid_hidden(pbvh); + grid_hidden = BLI_pbvh_grid_hidden(pbvh); BLI_pbvh_node_get_grids(pbvh, node, &grid_indices, &totgrid, - NULL, NULL, NULL, NULL); + NULL, NULL, NULL, NULL); - unode->grid_hidden= MEM_mapallocN(sizeof(BLI_bitmap) * totgrid, - "unode->grid_hidden"); + unode->grid_hidden = MEM_mapallocN(sizeof(BLI_bitmap) * totgrid, + "unode->grid_hidden"); for (i = 0; i < totgrid; i++) { if (grid_hidden[grid_indices[i]]) @@ -357,59 +357,59 @@ static void sculpt_undo_alloc_and_store_hidden(PBVH *pbvh, } static SculptUndoNode *sculpt_undo_alloc_node(Object *ob, PBVHNode *node, - SculptUndoType type) + SculptUndoType type) { - ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); + ListBase *lb = undo_paint_push_get_list(UNDO_PAINT_MESH); SculptUndoNode *unode; - SculptSession *ss= ob->sculpt; + SculptSession *ss = ob->sculpt; int totvert, allvert, totgrid, maxgrid, gridsize, *grids; - unode= MEM_callocN(sizeof(SculptUndoNode), "SculptUndoNode"); + unode = MEM_callocN(sizeof(SculptUndoNode), "SculptUndoNode"); BLI_strncpy(unode->idname, ob->id.name, sizeof(unode->idname)); - unode->type= type; - unode->node= node; + unode->type = type; + unode->node = node; BLI_pbvh_node_num_verts(ss->pbvh, node, &totvert, &allvert); BLI_pbvh_node_get_grids(ss->pbvh, node, &grids, &totgrid, - &maxgrid, &gridsize, NULL, NULL); + &maxgrid, &gridsize, NULL, NULL); - unode->totvert= totvert; + unode->totvert = totvert; /* we will use this while sculpting, is mapalloc slow to access then? */ /* general TODO, fix count_alloc */ - switch(type) { - case SCULPT_UNDO_COORDS: - unode->co= MEM_mapallocN(sizeof(float)*3*allvert, "SculptUndoNode.co"); - unode->no= MEM_mapallocN(sizeof(short)*3*allvert, "SculptUndoNode.no"); - undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float)*3 + sizeof(short)*3 + sizeof(int))*allvert); - break; - case SCULPT_UNDO_HIDDEN: - if (maxgrid) - sculpt_undo_alloc_and_store_hidden(ss->pbvh, unode); - else - unode->vert_hidden= BLI_BITMAP_NEW(allvert, "SculptUndoNode.vert_hidden"); + switch (type) { + case SCULPT_UNDO_COORDS: + unode->co = MEM_mapallocN(sizeof(float) * 3 * allvert, "SculptUndoNode.co"); + unode->no = MEM_mapallocN(sizeof(short) * 3 * allvert, "SculptUndoNode.no"); + undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float) * 3 + sizeof(short) * 3 + sizeof(int)) * allvert); + break; + case SCULPT_UNDO_HIDDEN: + if (maxgrid) + sculpt_undo_alloc_and_store_hidden(ss->pbvh, unode); + else + unode->vert_hidden = BLI_BITMAP_NEW(allvert, "SculptUndoNode.vert_hidden"); - break; + break; } BLI_addtail(lb, unode); if (maxgrid) { /* multires */ - unode->maxgrid= maxgrid; - unode->totgrid= totgrid; - unode->gridsize= gridsize; - unode->grids= MEM_mapallocN(sizeof(int)*totgrid, "SculptUndoNode.grids"); + unode->maxgrid = maxgrid; + unode->totgrid = totgrid; + unode->gridsize = gridsize; + unode->grids = MEM_mapallocN(sizeof(int) * totgrid, "SculptUndoNode.grids"); } else { /* regular mesh */ - unode->maxvert= ss->totvert; - unode->index= MEM_mapallocN(sizeof(int)*allvert, "SculptUndoNode.index"); + unode->maxvert = ss->totvert; + unode->index = MEM_mapallocN(sizeof(int) * allvert, "SculptUndoNode.index"); } if (ss->modifiers_active) - unode->orig_co= MEM_callocN(allvert*sizeof(*unode->orig_co), "undoSculpt orig_cos"); + unode->orig_co = MEM_callocN(allvert * sizeof(*unode->orig_co), "undoSculpt orig_cos"); return unode; } @@ -432,12 +432,12 @@ static void sculpt_undo_store_coords(Object *ob, SculptUndoNode *unode) static void sculpt_undo_store_hidden(Object *ob, SculptUndoNode *unode) { - PBVH *pbvh= ob->sculpt->pbvh; - PBVHNode *node= unode->node; + PBVH *pbvh = ob->sculpt->pbvh; + PBVHNode *node = unode->node; if (unode->grids) { /* already stored during allocation */ - } + } else { MVert *mvert; int *vert_indices, allvert; @@ -447,13 +447,13 @@ static void sculpt_undo_store_hidden(Object *ob, SculptUndoNode *unode) BLI_pbvh_node_get_verts(pbvh, node, &vert_indices, &mvert); for (i = 0; i < allvert; i++) { BLI_BITMAP_MODIFY(unode->vert_hidden, i, - mvert[vert_indices[i]].flag & ME_HIDE); + mvert[vert_indices[i]].flag & ME_HIDE); } } } SculptUndoNode *sculpt_undo_push_node(Object *ob, PBVHNode *node, - SculptUndoType type) + SculptUndoType type) { SculptSession *ss = ob->sculpt; SculptUndoNode *unode; @@ -461,41 +461,41 @@ SculptUndoNode *sculpt_undo_push_node(Object *ob, PBVHNode *node, /* list is manipulated by multiple threads, so we lock */ BLI_lock_thread(LOCK_CUSTOM1); - if ((unode= sculpt_undo_get_node(node))) { + if ((unode = sculpt_undo_get_node(node))) { BLI_unlock_thread(LOCK_CUSTOM1); return unode; } - unode= sculpt_undo_alloc_node(ob, node, type); + unode = sculpt_undo_alloc_node(ob, node, type); BLI_unlock_thread(LOCK_CUSTOM1); /* copy threaded, hopefully this is the performance critical part */ - switch(type) { - case SCULPT_UNDO_COORDS: - sculpt_undo_store_coords(ob, unode); - break; - case SCULPT_UNDO_HIDDEN: - sculpt_undo_store_hidden(ob, unode); - break; + switch (type) { + case SCULPT_UNDO_COORDS: + sculpt_undo_store_coords(ob, unode); + break; + case SCULPT_UNDO_HIDDEN: + sculpt_undo_store_hidden(ob, unode); + break; } if (unode->grids) { int totgrid, *grids; BLI_pbvh_node_get_grids(ss->pbvh, node, &grids, &totgrid, - NULL, NULL, NULL, NULL); - memcpy(unode->grids, grids, sizeof(int)*totgrid); + NULL, NULL, NULL, NULL); + memcpy(unode->grids, grids, sizeof(int) * totgrid); } else { int *vert_indices, allvert; BLI_pbvh_node_num_verts(ss->pbvh, node, NULL, &allvert); BLI_pbvh_node_get_verts(ss->pbvh, node, &vert_indices, NULL); - memcpy(unode->index, vert_indices, sizeof(int)*unode->totvert); + memcpy(unode->index, vert_indices, sizeof(int) * unode->totvert); } /* store active shape key */ if (ss->kb) BLI_strncpy(unode->shapeName, ss->kb->name, sizeof(ss->kb->name)); - else unode->shapeName[0]= '\0'; + else unode->shapeName[0] = '\0'; return unode; } @@ -503,24 +503,24 @@ SculptUndoNode *sculpt_undo_push_node(Object *ob, PBVHNode *node, void sculpt_undo_push_begin(const char *name) { undo_paint_push_begin(UNDO_PAINT_MESH, name, - sculpt_undo_restore, sculpt_undo_free); + sculpt_undo_restore, sculpt_undo_free); } void sculpt_undo_push_end(void) { - ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); + ListBase *lb = undo_paint_push_get_list(UNDO_PAINT_MESH); SculptUndoNode *unode; /* we don't need normals in the undo stack */ - for (unode=lb->first; unode; unode=unode->next) { + for (unode = lb->first; unode; unode = unode->next) { if (unode->no) { MEM_freeN(unode->no); - unode->no= NULL; + unode->no = NULL; } if (unode->layer_disp) { MEM_freeN(unode->layer_disp); - unode->layer_disp= NULL; + unode->layer_disp = NULL; } } diff --git a/source/blender/editors/sculpt_paint/sculpt_uv.c b/source/blender/editors/sculpt_paint/sculpt_uv.c index 4aa56266a21..2a0118f9c24 100644 --- a/source/blender/editors/sculpt_paint/sculpt_uv.c +++ b/source/blender/editors/sculpt_paint/sculpt_uv.c @@ -68,7 +68,7 @@ #include "UI_view2d.h" -#define MARK_BOUNDARY 1 +#define MARK_BOUNDARY 1 typedef struct UvAdjacencyElement { /* pointer to original uvelement */ @@ -86,7 +86,7 @@ typedef struct UvEdge { char flag; }UvEdge; -typedef struct UVInitialStrokeElement{ +typedef struct UVInitialStrokeElement { /* index to unique uv */ int uv; @@ -97,7 +97,7 @@ typedef struct UVInitialStrokeElement{ float initial_uv[2]; }UVInitialStrokeElement; -typedef struct UVInitialStroke{ +typedef struct UVInitialStroke { /* Initial Selection,for grab brushes for instance */ UVInitialStrokeElement *initialSelection; @@ -110,7 +110,7 @@ typedef struct UVInitialStroke{ /* custom data for uv smoothing brush */ -typedef struct UvSculptData{ +typedef struct UvSculptData { /* Contains the first of each set of coincident uvs. * These will be used to perform smoothing on and propagate the changes * to their coincident uvs */ @@ -146,10 +146,10 @@ typedef struct UvSculptData{ /*********** Improved Laplacian Relaxation Operator ************************/ /* original code by Raul Fernandez Hernandez "farsthary" * - * adapted to uv smoothing by Antony Riakiatakis * - ***************************************************************************/ +* adapted to uv smoothing by Antony Riakiatakis * +***************************************************************************/ -typedef struct Temp_UvData{ +typedef struct Temp_UvData { float sum_co[2], p[2], b[2], sum_b[2]; int ncounter; }Temp_UVData; @@ -169,7 +169,7 @@ void HC_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *sculptdata, float /* counting neighbors */ for (i = 0; i < sculptdata->totalUvEdges; i++) { - UvEdge *tmpedge = sculptdata->uvedges+i; + UvEdge *tmpedge = sculptdata->uvedges + i; tmp_uvdata[tmpedge->uv1].ncounter++; tmp_uvdata[tmpedge->uv2].ncounter++; @@ -178,16 +178,16 @@ void HC_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *sculptdata, float } for (i = 0; i < sculptdata->totalUniqueUvs; i++) { - copy_v2_v2(diff,tmp_uvdata[i].sum_co); - mul_v2_fl(diff,1.f/tmp_uvdata[i].ncounter); - copy_v2_v2(tmp_uvdata[i].p,diff); + copy_v2_v2(diff, tmp_uvdata[i].sum_co); + mul_v2_fl(diff, 1.f / tmp_uvdata[i].ncounter); + copy_v2_v2(tmp_uvdata[i].p, diff); tmp_uvdata[i].b[0] = diff[0] - sculptdata->uv[i].uv[0]; tmp_uvdata[i].b[1] = diff[1] - sculptdata->uv[i].uv[1]; } for (i = 0; i < sculptdata->totalUvEdges; i++) { - UvEdge *tmpedge = sculptdata->uvedges+i; + UvEdge *tmpedge = sculptdata->uvedges + i; add_v2_v2(tmp_uvdata[tmpedge->uv1].sum_b, tmp_uvdata[tmpedge->uv2].b); add_v2_v2(tmp_uvdata[tmpedge->uv2].sum_b, tmp_uvdata[tmpedge->uv1].b); } @@ -205,10 +205,10 @@ void HC_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *sculptdata, float if ((dist = dot_v2v2(diff, diff)) <= radius) { UvElement *element; float strength; - strength = alpha*brush_curve_strength(brush, sqrt(dist), radius_root); + strength = alpha * brush_curve_strength(brush, sqrt(dist), radius_root); - sculptdata->uv[i].uv[0] = (1.0-strength)*sculptdata->uv[i].uv[0] + strength*(tmp_uvdata[i].p[0] - 0.5f*(tmp_uvdata[i].b[0] + tmp_uvdata[i].sum_b[0]/tmp_uvdata[i].ncounter)); - sculptdata->uv[i].uv[1] = (1.0-strength)*sculptdata->uv[i].uv[1] + strength*(tmp_uvdata[i].p[1] - 0.5f*(tmp_uvdata[i].b[1] + tmp_uvdata[i].sum_b[1]/tmp_uvdata[i].ncounter)); + sculptdata->uv[i].uv[0] = (1.0 - strength) * sculptdata->uv[i].uv[0] + strength * (tmp_uvdata[i].p[0] - 0.5f * (tmp_uvdata[i].b[0] + tmp_uvdata[i].sum_b[0] / tmp_uvdata[i].ncounter)); + sculptdata->uv[i].uv[1] = (1.0 - strength) * sculptdata->uv[i].uv[1] + strength * (tmp_uvdata[i].p[1] - 0.5f * (tmp_uvdata[i].b[1] + tmp_uvdata[i].sum_b[1] / tmp_uvdata[i].ncounter)); for (element = sculptdata->uv[i].element; element; element = element->next) { MLoopUV *luv; @@ -241,7 +241,7 @@ static void laplacian_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *scul /* counting neighbors */ for (i = 0; i < sculptdata->totalUvEdges; i++) { - UvEdge *tmpedge = sculptdata->uvedges+i; + UvEdge *tmpedge = sculptdata->uvedges + i; tmp_uvdata[tmpedge->uv1].ncounter++; tmp_uvdata[tmpedge->uv2].ncounter++; @@ -253,7 +253,7 @@ static void laplacian_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *scul * needed since we translate along the UV plane always.*/ for (i = 0; i < sculptdata->totalUniqueUvs; i++) { copy_v2_v2(tmp_uvdata[i].p, tmp_uvdata[i].sum_co); - mul_v2_fl(tmp_uvdata[i].p, 1.f/tmp_uvdata[i].ncounter); + mul_v2_fl(tmp_uvdata[i].p, 1.f / tmp_uvdata[i].ncounter); } for (i = 0; i < sculptdata->totalUniqueUvs; i++) { @@ -269,10 +269,10 @@ static void laplacian_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *scul if ((dist = dot_v2v2(diff, diff)) <= radius) { UvElement *element; float strength; - strength = alpha*brush_curve_strength(brush, sqrt(dist), radius_root); + strength = alpha * brush_curve_strength(brush, sqrt(dist), radius_root); - sculptdata->uv[i].uv[0] = (1.0-strength)*sculptdata->uv[i].uv[0] + strength*tmp_uvdata[i].p[0]; - sculptdata->uv[i].uv[1] = (1.0-strength)*sculptdata->uv[i].uv[1] + strength*tmp_uvdata[i].p[1]; + sculptdata->uv[i].uv[0] = (1.0 - strength) * sculptdata->uv[i].uv[0] + strength * tmp_uvdata[i].p[0]; + sculptdata->uv[i].uv[1] = (1.0 - strength) * sculptdata->uv[i].uv[1] + strength * tmp_uvdata[i].p[1]; for (element = sculptdata->uv[i].element; element; element = element->next) { MLoopUV *luv; @@ -310,7 +310,7 @@ static void uv_sculpt_stroke_apply(bContext *C, wmOperator *op, wmEvent *event, Brush *brush = paint_brush(sculptdata->uvsculpt); ToolSettings *toolsettings = CTX_data_tool_settings(C); tool = sculptdata->tool; - invert = sculptdata->invert? -1 : 1; + invert = sculptdata->invert ? -1 : 1; alpha = brush_alpha(scene, brush); UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &co[0], &co[1]); @@ -318,11 +318,11 @@ static void uv_sculpt_stroke_apply(bContext *C, wmOperator *op, wmEvent *event, ED_space_image_size(sima, &width, &height); ED_space_image_zoom(sima, ar, &zoomx, &zoomy); - radius = brush_size(scene, brush)/(width*zoomx); - aspectRatio = width/(float)height; + radius = brush_size(scene, brush) / (width * zoomx); + aspectRatio = width / (float)height; /* We will compare squares to save some computation */ - radius = radius*radius; + radius = radius * radius; radius_root = sqrt(radius); /* @@ -344,11 +344,11 @@ static void uv_sculpt_stroke_apply(bContext *C, wmOperator *op, wmEvent *event, if ((dist = dot_v2v2(diff, diff)) <= radius) { UvElement *element; float strength; - strength = alpha*brush_curve_strength(brush, sqrt(dist), radius_root); + strength = alpha * brush_curve_strength(brush, sqrt(dist), radius_root); normalize_v2(diff); - sculptdata->uv[i].uv[0] -= strength*diff[0]*0.001; - sculptdata->uv[i].uv[1] -= strength*diff[1]*0.001; + sculptdata->uv[i].uv[0] -= strength * diff[0] * 0.001; + sculptdata->uv[i].uv[1] -= strength * diff[1] * 0.001; for (element = sculptdata->uv[i].element; element; element = element->next) { MLoopUV *luv; @@ -386,12 +386,12 @@ static void uv_sculpt_stroke_apply(bContext *C, wmOperator *op, wmEvent *event, float diff[2]; sub_v2_v2v2(diff, co, sculptdata->initial_stroke->init_coord); - for (i = 0; i < sculptdata->initial_stroke->totalInitialSelected; i++ ) { + for (i = 0; i < sculptdata->initial_stroke->totalInitialSelected; i++) { UvElement *element; int uvindex = sculptdata->initial_stroke->initialSelection[i].uv; float strength = sculptdata->initial_stroke->initialSelection[i].strength; - sculptdata->uv[uvindex].uv[0] = sculptdata->initial_stroke->initialSelection[i].initial_uv[0] + strength*diff[0]; - sculptdata->uv[uvindex].uv[1] = sculptdata->initial_stroke->initialSelection[i].initial_uv[1] + strength*diff[1]; + sculptdata->uv[uvindex].uv[0] = sculptdata->initial_stroke->initialSelection[i].initial_uv[0] + strength * diff[0]; + sculptdata->uv[uvindex].uv[1] = sculptdata->initial_stroke->initialSelection[i].initial_uv[1] + strength * diff[1]; for (element = sculptdata->uv[uvindex].element; element; element = element->next) { MLoopUV *luv; @@ -445,12 +445,11 @@ static int uv_element_offset_from_face_get(UvElementMap *map, BMFace *efa, BMLoo } -static unsigned int uv_edge_hash(const void *key) +static unsigned int uv_edge_hash(const void *key) { UvEdge *edge = (UvEdge *)key; - return - BLI_ghashutil_inthash(SET_INT_IN_POINTER(edge->uv2)) + - BLI_ghashutil_inthash(SET_INT_IN_POINTER(edge->uv1)); + return (BLI_ghashutil_inthash(SET_INT_IN_POINTER(edge->uv2)) + + BLI_ghashutil_inthash(SET_INT_IN_POINTER(edge->uv1))); } static int uv_edge_compare(const void *a, const void *b) @@ -478,7 +477,7 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent if (data) { int counter = 0, i; - ARegion *ar= CTX_wm_region(C); + ARegion *ar = CTX_wm_region(C); float co[2]; BMFace *efa; MLoopUV *luv; @@ -487,14 +486,14 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent UvEdge *edges; GHash *edgeHash; - GHashIterator* ghi; + GHashIterator *ghi; int do_island_optimization = !(ts->uv_sculpt_settings & UV_SCULPT_ALL_ISLANDS); int island_index = 0; /* Holds, for each UvElement in elementMap, a pointer to its unique uv.*/ int *uniqueUv; - data->tool = (RNA_enum_get(op->ptr, "mode") == BRUSH_STROKE_SMOOTH)? UV_SCULPT_TOOL_RELAX : ts->uv_sculpt_tool; - data->invert = (RNA_enum_get(op->ptr, "mode") == BRUSH_STROKE_INVERT)? 1 : 0; + data->tool = (RNA_enum_get(op->ptr, "mode") == BRUSH_STROKE_SMOOTH) ? UV_SCULPT_TOOL_RELAX : ts->uv_sculpt_tool; + data->invert = (RNA_enum_get(op->ptr, "mode") == BRUSH_STROKE_INVERT) ? 1 : 0; data->uvsculpt = &ts->uvsculpt->paint; @@ -528,7 +527,7 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent if (do_island_optimization) { UvElement *element; NearestHit hit; - Image *ima= CTX_data_edit_image(C); + Image *ima = CTX_data_edit_image(C); uv_find_nearest_vert(scene, ima, em, co, NULL, &hit); element = ED_uv_element_get(data->elementMap, hit.efa, hit.l); @@ -539,17 +538,17 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent /* Count 'unique' uvs */ for (i = 0; i < data->elementMap->totalUVs; i++) { if (data->elementMap->buf[i].separate - && (!do_island_optimization || data->elementMap->buf[i].island == island_index)) { + && (!do_island_optimization || data->elementMap->buf[i].island == island_index)) { counter++; } } /* Allocate the unique uv buffers */ - data->uv = MEM_mallocN(sizeof(*data->uv)*counter, "uv_brush_unique_uvs"); - uniqueUv = MEM_mallocN(sizeof(*uniqueUv)*data->elementMap->totalUVs, "uv_brush_unique_uv_map"); + data->uv = MEM_mallocN(sizeof(*data->uv) * counter, "uv_brush_unique_uvs"); + uniqueUv = MEM_mallocN(sizeof(*uniqueUv) * data->elementMap->totalUVs, "uv_brush_unique_uv_map"); edgeHash = BLI_ghash_new(uv_edge_hash, uv_edge_compare, "uv_brush_edge_hash"); /* we have at most totalUVs edges */ - edges = MEM_mallocN(sizeof(*edges)*data->elementMap->totalUVs, "uv_brush_all_edges"); + edges = MEM_mallocN(sizeof(*edges) * data->elementMap->totalUVs, "uv_brush_all_edges"); if (!data->uv || !uniqueUv || !edgeHash || !edges) { if (edges) { MEM_freeN(edges); @@ -634,7 +633,7 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent MEM_freeN(uniqueUv); /* Allocate connectivity data, we allocate edges once */ - data->uvedges = MEM_mallocN(sizeof(*data->uvedges)*BLI_ghash_size(edgeHash), "uv_brush_edge_connectivity_data"); + data->uvedges = MEM_mallocN(sizeof(*data->uvedges) * BLI_ghash_size(edgeHash), "uv_brush_edge_connectivity_data"); if (!data->uvedges) { BLI_ghash_free(edgeHash, NULL, NULL); MEM_freeN(edges); @@ -686,9 +685,9 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent ED_space_image_size(sima, &width, &height); ED_space_image_zoom(sima, ar, &zoomx, &zoomy); - aspectRatio = width/(float)height; - radius /= (width*zoomx); - radius = radius*radius; + aspectRatio = width / (float)height; + radius /= (width * zoomx); + radius = radius * radius; radius_root = sqrt(radius); /* Allocate selection stack */ @@ -696,7 +695,7 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent if (!data->initial_stroke) { uv_sculpt_stroke_exit(C, op); } - data->initial_stroke->initialSelection = MEM_mallocN(sizeof(*data->initial_stroke->initialSelection)*data->totalUniqueUvs, "uv_sculpt_initial_selection"); + data->initial_stroke->initialSelection = MEM_mallocN(sizeof(*data->initial_stroke->initialSelection) * data->totalUniqueUvs, "uv_sculpt_initial_selection"); if (!data->initial_stroke->initialSelection) { uv_sculpt_stroke_exit(C, op); } @@ -715,7 +714,7 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent diff[1] /= aspectRatio; if ((dist = dot_v2v2(diff, diff)) <= radius) { float strength; - strength = alpha*brush_curve_strength(brush, sqrt(dist), radius_root); + strength = alpha * brush_curve_strength(brush, sqrt(dist), radius_root); data->initial_stroke->initialSelection[counter].uv = i; data->initial_stroke->initialSelection[counter].strength = strength; @@ -742,7 +741,7 @@ static int uv_sculpt_stroke_invoke(bContext *C, wmOperator *op, wmEvent *event) uv_sculpt_stroke_apply(C, op, event, obedit); - data->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.001f); + data->timer = WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.001f); if (!data->timer) { uv_sculpt_stroke_exit(C, op); @@ -759,7 +758,7 @@ static int uv_sculpt_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) UvSculptData *data = (UvSculptData *)op->customdata; Object *obedit = CTX_data_edit_object(C); - switch(event->type) { + switch (event->type) { case LEFTMOUSE: case MIDDLEMOUSE: case RIGHTMOUSE: @@ -779,7 +778,7 @@ static int uv_sculpt_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) } ED_region_tag_redraw(CTX_wm_region(C)); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, obedit->data); DAG_id_tag_update(obedit->data, 0); return OPERATOR_RUNNING_MODAL; } @@ -804,7 +803,7 @@ void SCULPT_OT_uv_sculpt_stroke(wmOperatorType *ot) ot->poll = uv_sculpt_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* props */ RNA_def_enum(ot->srna, "mode", stroke_mode_items, BRUSH_STROKE_NORMAL, "Mode", "Stroke Mode"); |