[Bf-blender-cvs] [b4d0795be5e] greasepencil-object: Merge branch 'blender2.8' into greasepencil-object
Antonioya
noreply at git.blender.org
Mon Dec 17 18:35:50 CET 2018
Commit: b4d0795be5e3e1aec680d44cc76db8c652bb9343
Author: Antonioya
Date: Mon Dec 17 18:35:43 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rBb4d0795be5e3e1aec680d44cc76db8c652bb9343
Merge branch 'blender2.8' into greasepencil-object
===================================================================
===================================================================
diff --cc source/blender/editors/gpencil/gpencil_primitive.c
index fecf34676f0,5c95dbf2a01..d12f6214470
--- a/source/blender/editors/gpencil/gpencil_primitive.c
+++ b/source/blender/editors/gpencil/gpencil_primitive.c
@@@ -529,67 -519,11 +531,68 @@@ static void gp_primitive_line(tGPDprimi
UI_GetThemeColor4fv(TH_REDALERT, color);
gp_primitive_set_cp(tgpi, tgpi->start, color, SMALL_SIZE_CTL);
}
- else
+ else {
gp_primitive_set_cp(tgpi, tgpi->start, color, BIG_SIZE_CTL);
+ }
}
+/* create a chord */
+static void gp_primitive_chord(tGPDprimitive *tgpi, tGPspoint *points2D)
+{
+ const int totpoints = (tgpi->tot_edges + tgpi->tot_stored_edges);
+ float cp[2];
+ float point[2];
+ float center[2];
+
+ copy_v2_v2(cp, tgpi->cp1);
+ mid_v2_v2v2(tgpi->midpoint, tgpi->start, tgpi->end);
+ closest_to_line_v2(point, cp, tgpi->start, tgpi->end);
+
+ center[0] = tgpi->midpoint[0] + cp[0] - point[0];
+ center[1] = tgpi->midpoint[1] + cp[1] - point[1];
+
+ float cross = cross_tri_v2(tgpi->start, center, tgpi->end);
+ float stepangle;
+ float step;
+
+ if (!tgpi->flip) {
+ float fcenter[2];
+ gp_reflect_point_v2_v2v2v2(fcenter, center, tgpi->start, tgpi->end);
+ stepangle = angle_v2v2v2(tgpi->start, fcenter, tgpi->end);
+ if (cross < 0.0f) {
+ stepangle = (M_PI * 2.0f) - stepangle;
+ }
+ step = stepangle / (float)(tgpi->tot_edges - 1);
+ step = -step;
+ }
+ else {
+ stepangle = angle_v2v2v2(tgpi->start, center, tgpi->end); ;
+ if (cross > 0.0f) {
+ stepangle = (M_PI * 2.0f) - stepangle;
+ }
+ step = stepangle / (float)(tgpi->tot_edges - 1);
+ }
+
+ float a = tgpi->tot_stored_edges ? step : 0.0f;
+
+ for (int i = tgpi->tot_stored_edges; i < totpoints; i++) {
+ tGPspoint *p2d = &points2D[i];
+ gp_rotate_v2_v2v2fl(&p2d->x, tgpi->start, center, a);
+ a += step;
+ }
+ float color[4];
+ UI_GetThemeColor4fv(TH_ACTIVE_VERT, color);
+ gp_primitive_set_cp(tgpi, tgpi->end, color, BIG_SIZE_CTL);
+ if (tgpi->tot_stored_edges) {
+ UI_GetThemeColor4fv(TH_REDALERT, color);
+ gp_primitive_set_cp(tgpi, tgpi->start, color, SMALL_SIZE_CTL);
+ }
+ else
+ gp_primitive_set_cp(tgpi, tgpi->start, color, BIG_SIZE_CTL);
+ UI_GetThemeColor4fv(TH_GP_VERTEX_SELECT, color);
+ gp_primitive_set_cp(tgpi, center, color, BIG_SIZE_CTL * 0.9f);
+}
+
/* create an arc */
static void gp_primitive_arc(tGPDprimitive *tgpi, tGPspoint *points2D)
{
More information about the Bf-blender-cvs
mailing list