Exemple #1
0
static int paintcurve_cursor_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
{
  ePaintMode mode = BKE_paintmode_get_active_from_context(C);

  switch (mode) {
    case PAINT_MODE_TEXTURE_2D: {
      ARegion *ar = CTX_wm_region(C);
      SpaceImage *sima = CTX_wm_space_image(C);
      float location[2];

      if (!sima) {
        return OPERATOR_CANCELLED;
      }

      UI_view2d_region_to_view(
          &ar->v2d, event->mval[0], event->mval[1], &location[0], &location[1]);
      copy_v2_v2(sima->cursor, location);
      WM_event_add_notifier(C, NC_SPACE | ND_SPACE_IMAGE, NULL);
      break;
    }
    default:
      ED_view3d_cursor3d_update(C, event->mval, true, V3D_CURSOR_ORIENT_VIEW);
      break;
  }

  return OPERATOR_FINISHED;
}
Exemple #2
0
static int paintcurve_draw_exec(bContext *C, wmOperator *UNUSED(op))
{
  ePaintMode mode = BKE_paintmode_get_active_from_context(C);
  const char *name;

  switch (mode) {
    case PAINT_MODE_TEXTURE_2D:
    case PAINT_MODE_TEXTURE_3D:
      name = "PAINT_OT_image_paint";
      break;
    case PAINT_MODE_WEIGHT:
      name = "PAINT_OT_weight_paint";
      break;
    case PAINT_MODE_VERTEX:
      name = "PAINT_OT_vertex_paint";
      break;
    case PAINT_MODE_SCULPT:
      name = "SCULPT_OT_brush_stroke";
      break;
    default:
      return OPERATOR_PASS_THROUGH;
  }

  return WM_operator_name_call(C, name, WM_OP_INVOKE_DEFAULT, NULL);
}
Exemple #3
0
static int paintcurve_draw_exec(bContext *C, wmOperator *UNUSED(op))
{
	ePaintMode mode = BKE_paintmode_get_active_from_context(C);
	const char *name;

	switch (mode) {
		case ePaintTexture2D:
		case ePaintTextureProjective:
			name = "PAINT_OT_image_paint";
			break;
		case ePaintWeight:
			name = "PAINT_OT_weight_paint";
			break;
		case ePaintVertex:
			name = "PAINT_OT_vertex_paint";
			break;
		case ePaintSculpt:
			name = "SCULPT_OT_brush_stroke";
			break;
		default:
			return OPERATOR_PASS_THROUGH;
	}

	return WM_operator_name_call(C, name, WM_OP_INVOKE_DEFAULT, NULL);
}
Exemple #4
0
static int stencil_control_poll(bContext *C)
{
	PaintMode mode = BKE_paintmode_get_active_from_context(C);

	Paint *paint;
	Brush *br;

	if (!paint_supports_texture(mode))
		return false;

	paint = BKE_paint_get_active_from_context(C);
	br = BKE_paint_brush(paint);
	return (br &&
	        (br->mtex.brush_map_mode == MTEX_MAP_MODE_STENCIL ||
	         br->mask_mtex.brush_map_mode == MTEX_MAP_MODE_STENCIL));
}
Exemple #5
0
/* Brush operators */
static int brush_add_exec(bContext *C, wmOperator *UNUSED(op))
{
	/*int type = RNA_enum_get(op->ptr, "type");*/
	Paint *paint = BKE_paint_get_active_from_context(C);
	Brush *br = BKE_paint_brush(paint);
	Main *bmain = CTX_data_main(C);
	PaintMode mode = BKE_paintmode_get_active_from_context(C);

	if (br)
		br = BKE_brush_copy(br);
	else
		br = BKE_brush_add(bmain, "Brush", BKE_paint_object_mode_from_paint_mode(mode));

	BKE_paint_brush_set(paint, br);

	return OPERATOR_FINISHED;
}
Exemple #6
0
static int palette_color_add_exec(bContext *C, wmOperator *UNUSED(op))
{
	Scene *scene = CTX_data_scene(C);
	Paint *paint = BKE_paint_get_active_from_context(C);
	Brush *brush = paint->brush;
	PaintMode mode = BKE_paintmode_get_active_from_context(C);
	Palette *palette = paint->palette;
	PaletteColor *color;

	color = BKE_palette_color_add(palette);
	palette->active_color = BLI_listbase_count(&palette->colors) - 1;

	if (ELEM(mode, ePaintTextureProjective, ePaintTexture2D, ePaintVertex)) {
		copy_v3_v3(color->rgb, BKE_brush_color_get(scene, brush));
		color->value = 0.0;
	}
	else if (mode == ePaintWeight) {
		zero_v3(color->rgb);
		color->value = brush->weight;
	}

	return OPERATOR_FINISHED;
}