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:
authorHoward Trickey <howard.trickey@gmail.com>2012-04-19 17:44:28 +0400
committerHoward Trickey <howard.trickey@gmail.com>2012-04-19 17:44:28 +0400
commit9276d7aeb2679a4eecbdd97f0ed699712920e4fb (patch)
tree0a3d458e5783f3152bad69f07e18f17f192176ca /source/blender/editors/mesh/editmesh_knife.c
parent3ef79439100a910f2f23b8ad1d3584984d289ee9 (diff)
For bug #30931, change knife hardcoded colors to ones derived from theme.
For now, just reusing some theme colors that are there for other reasons but matched approximately the colors used now. Except that cut lines are now purple-violet, so that they contrast with grid and edges better, especially in wireframe.
Diffstat (limited to 'source/blender/editors/mesh/editmesh_knife.c')
-rw-r--r--source/blender/editors/mesh/editmesh_knife.c43
1 files changed, 34 insertions, 9 deletions
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index dc0d8f13a2a..9d0285e9ceb 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -60,6 +60,7 @@
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "BKE_tessmesh.h"
+#include "UI_resources.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -874,7 +875,7 @@ static void knifetool_draw_angle_snapping(knifetool_opdata *kcd)
mats.modelview, mats.projection, mats.viewport,
&v2[0], &v2[1], &v2[2]);
- glColor3f(0.6, 0.6, 0.6);
+ UI_ThemeColor(TH_TRANSFORM);
glLineWidth(2.0);
glBegin(GL_LINES);
glVertex3dv(v1);
@@ -882,11 +883,32 @@ static void knifetool_draw_angle_snapping(knifetool_opdata *kcd)
glEnd();
}
+static void knife_colors(unsigned char c_line[3],
+ unsigned char c_edge[3],
+ unsigned char c_curpoint[3],
+ unsigned char c_curpoint_a[4],
+ unsigned char c_point[3],
+ unsigned char c_point_a[4]) {
+ /* possible BMESH_TODO: add explicit themes or calculate these by
+ * figuring out constrasting colors with grid / edges / verts
+ * a la UI_make_axis_color */
+ UI_GetThemeColor3ubv(TH_NURB_VLINE, c_line);
+ UI_GetThemeColor3ubv(TH_NURB_ULINE, c_edge);
+ UI_GetThemeColor3ubv(TH_HANDLE_SEL_VECT, c_curpoint);
+ UI_GetThemeColor3ubv(TH_HANDLE_SEL_VECT, c_curpoint_a);
+ c_curpoint_a[3] = 0.4;
+ UI_GetThemeColor3ubv(TH_ACTIVE_SPLINE, c_point);
+ UI_GetThemeColor3ubv(TH_ACTIVE_SPLINE, c_point_a);
+ c_point_a[3] = 0.4;
+}
+
/* modal loop selection drawing callback */
static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
{
View3D *v3d = CTX_wm_view3d(C);
knifetool_opdata *kcd = arg;
+ unsigned char c_line[3], c_edge[3], c_curpoint[3], c_point[3];
+ unsigned char c_curpoint_a[4], c_point_a[4];
if(v3d->zbuf) glDisable(GL_DEPTH_TEST);
@@ -895,11 +917,14 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
glPushMatrix();
glMultMatrixf(kcd->ob->obmat);
+ knife_colors(c_line, c_edge, c_curpoint, c_curpoint_a, c_point, c_point_a);
+
if (kcd->mode == MODE_DRAGGING) {
if (kcd->angle_snapping != ANGLE_FREE)
knifetool_draw_angle_snapping(kcd);
- glColor3f(0.1, 0.1, 0.1);
+ glColor3ubv(c_line);
+
glLineWidth(2.0);
glBegin(GL_LINES);
@@ -911,7 +936,7 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
}
if (kcd->cur.edge) {
- glColor3f(0.5, 0.3, 0.15);
+ glColor3ubv(c_edge);
glLineWidth(2.0);
glBegin(GL_LINES);
@@ -922,7 +947,7 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
glLineWidth(1.0);
}
else if (kcd->cur.vert) {
- glColor3f(0.8, 0.2, 0.1);
+ glColor3ubv(c_point);
glPointSize(11);
glBegin(GL_POINTS);
@@ -931,7 +956,7 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
}
if (kcd->cur.bmface) {
- glColor3f(0.1, 0.8, 0.05);
+ glColor3ubv(c_curpoint);
glPointSize(9);
glBegin(GL_POINTS);
@@ -947,7 +972,7 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
/* draw any snapped verts first */
- glColor4f(0.8, 0.2, 0.1, 0.4);
+ glColor4ubv(c_point_a);
glPointSize(11);
glBegin(GL_POINTS);
lh = kcd->linehits;
@@ -979,7 +1004,7 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
glEnd();
/* now draw the rest */
- glColor4f(0.1, 0.8, 0.05, 0.4);
+ glColor4ubv(c_curpoint_a);
glPointSize(7);
glBegin(GL_POINTS);
lh = kcd->linehits;
@@ -1009,7 +1034,7 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
if (!kfe->draw)
continue;
- glColor3f(0.2, 0.2, 0.2);
+ glColor3ubv(c_line);
glVertex3fv(kfe->v1->cageco);
glVertex3fv(kfe->v2->cageco);
@@ -1031,7 +1056,7 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
if (!kfv->draw)
continue;
- glColor3f(0.6, 0.1, 0.2);
+ glColor3ubv(c_point);
glVertex3fv(kfv->cageco);
}