Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-02-02 06:32:58 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-02-02 06:32:58 +0300
commit691f2abad1f2d22fd6dec7430d6266366ecc1b21 (patch)
tree58d821c8aad2d4463e9d2d8a2124b65f89522bb6 /source/blender/editors/gpencil
parentb04bccd44e45dcb759de55c08d2913400853ee82 (diff)
fix [#25684] Grease pencil strokes with "Surface" option attach erratically to curves.
added new functions - view_autodist_depth_segment() - plot_line_v2v2i(), which takes a callback and plots x/y points.
Diffstat (limited to 'source/blender/editors/gpencil')
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index baa6f7d6a25..0ebbe223c3f 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -547,18 +547,25 @@ static void gp_stroke_newfrombuffer (tGPsdata *p)
/* get an array of depths, far depths are blended */
if (gpencil_project_check(p)) {
- short mval[2];
+ short mval[2], mval_prev[2]= {0};
int interp_depth = 0;
int found_depth = 0;
depth_arr= MEM_mallocN(sizeof(float) * gpd->sbuffer_size, "depth_points");
-
+
for (i=0, ptc=gpd->sbuffer; i < gpd->sbuffer_size; i++, ptc++, pt++) {
mval[0]= ptc->x; mval[1]= ptc->y;
- if (view_autodist_depth(p->ar, mval, depth_margin, depth_arr+i) == 0)
+
+ if ((view_autodist_depth(p->ar, mval, depth_margin, depth_arr+i) == 0) &&
+ (i && (view_autodist_depth_segment(p->ar, mval, mval_prev, depth_margin + 1, depth_arr+i) == 0))
+ ) {
interp_depth= TRUE;
- else
+ }
+ else {
found_depth= TRUE;
+ }
+
+ VECCOPY2D(mval_prev, mval);
}
if (found_depth == FALSE) {