[Bf-blender-cvs] [f444749064b] soc-2019-npr: LANPR: Line layer operators now moved to ED

YimingWu noreply at git.blender.org
Sat Jul 13 09:24:25 CEST 2019


Commit: f444749064babb653332b1fff73bce5ab27bb0bc
Author: YimingWu
Date:   Sat Jul 13 15:23:55 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBf444749064babb653332b1fff73bce5ab27bb0bc

LANPR: Line layer operators now moved to ED

===================================================================

M	source/blender/draw/engines/lanpr/lanpr_ops.c
M	source/blender/editors/lanpr/lanpr_ops.c

===================================================================

diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 5c5420dcf49..7f5479e9a93 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3640,7 +3640,7 @@ LANPR_RenderBuffer *lanpr_create_render_buffer()
   return rb;
 }
 
-int lanpr_max_occlusion_in_line_layers(SceneLANPR *lanpr);
+int ED_lanpr_max_occlusion_in_line_layers(SceneLANPR *lanpr);
 
 int lanpr_max_occlusion_in_collections(Collection *c)
 {
@@ -3706,7 +3706,7 @@ int lanpr_get_max_occlusion_level(Scene *s)
   SceneLANPR *lanpr = &s->lanpr;
   if (!strcmp(s->r.engine, RE_engine_id_BLENDER_LANPR)) {
     /* Use the line layers in scene LANPR settings */
-    return lanpr_max_occlusion_in_line_layers(lanpr);
+    return ED_lanpr_max_occlusion_in_line_layers(lanpr);
   }
   else {
     /* Other engines, use GPencil configurations */
@@ -4490,325 +4490,3 @@ void SCENE_OT_lanpr_calculate_feature_lines(struct wmOperatorType *ot)
   ot->cancel = lanpr_compute_feature_lines_cancel;
   ot->exec = lanpr_compute_feature_lines_exec;
 }
-
-int lanpr_max_occlusion_in_line_layers(SceneLANPR *lanpr)
-{
-  LANPR_LineLayer *lli;
-  int max_occ = -1, max;
-  for (lli = lanpr->line_layers.first; lli; lli = lli->next) {
-    if (lli->use_multiple_levels) {
-      max = MAX2(lli->qi_begin, lli->qi_end);
-    }
-    else {
-      max = lli->qi_begin;
-    }
-    max_occ = MAX2(max, max_occ);
-  }
-  return max_occ;
-}
-
-LANPR_LineLayer *lanpr_new_line_layer(SceneLANPR *lanpr)
-{
-  LANPR_LineLayer *ll = MEM_callocN(sizeof(LANPR_LineLayer), "Line Layer");
-
-  int max_occ = lanpr_max_occlusion_in_line_layers(lanpr);
-
-  ll->qi_begin = ll->qi_end = max_occ + 1;
-  ll->use_same_style = 1;
-  ll->thickness = 1.0f;
-  copy_v3_fl(ll->color, 0.8);
-  ll->color[3] = 1.0f;
-  ll->enable_contour = 1;
-  ll->enable_crease = 1;
-  ll->enable_material_seperate = 1;
-  ll->enable_edge_mark = 1;
-  ll->enable_intersection = 1;
-
-  lanpr->active_layer = ll;
-  BLI_addtail(&lanpr->line_layers, ll);
-
-  return ll;
-}
-LANPR_LineLayerComponent *lanpr_new_line_component(SceneLANPR *lanpr)
-{
-  if (!lanpr->active_layer) {
-    return 0;
-  }
-  LANPR_LineLayer *ll = lanpr->active_layer;
-
-  LANPR_LineLayerComponent *llc = MEM_callocN(sizeof(LANPR_LineLayerComponent), "Line Component");
-  BLI_addtail(&ll->components, llc);
-
-  return llc;
-}
-
-int lanpr_add_line_layer_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-
-  lanpr_new_line_layer(lanpr);
-
-  DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
-
-  WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, NULL);
-
-  return OPERATOR_FINISHED;
-}
-int lanpr_delete_line_layer_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-
-  LANPR_LineLayer *ll = lanpr->active_layer;
-
-  if (!ll) {
-    return OPERATOR_FINISHED;
-  }
-
-  if (ll->prev) {
-    lanpr->active_layer = ll->prev;
-  }
-  else if (ll->next) {
-    lanpr->active_layer = ll->next;
-  }
-  else {
-    lanpr->active_layer = 0;
-  }
-
-  BLI_remlink(&scene->lanpr.line_layers, ll);
-
-  /*  if (ll->batch) GPU_batch_discard(ll->batch); */
-
-  MEM_freeN(ll);
-
-  DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
-
-  WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, NULL);
-
-  return OPERATOR_FINISHED;
-}
-int lanpr_move_line_layer_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-
-  LANPR_LineLayer *ll = lanpr->active_layer;
-
-  if (!ll) {
-    return OPERATOR_FINISHED;
-  }
-
-  int dir = RNA_enum_get(op->ptr, "direction");
-
-  if (dir == 1 && ll->prev) {
-    BLI_remlink(&lanpr->line_layers, ll);
-    BLI_insertlinkbefore(&lanpr->line_layers, ll->prev, ll);
-  }
-  else if (dir == -1 && ll->next) {
-    BLI_remlink(&lanpr->line_layers, ll);
-    BLI_insertlinkafter(&lanpr->line_layers, ll->next, ll);
-  }
-
-  DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
-
-  WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, NULL);
-
-  return OPERATOR_FINISHED;
-}
-int lanpr_add_line_component_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-
-  lanpr_new_line_component(lanpr);
-
-  return OPERATOR_FINISHED;
-}
-int lanpr_delete_line_component_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-  LANPR_LineLayer *ll = lanpr->active_layer;
-  LANPR_LineLayerComponent *llc;
-  int i = 0;
-
-  if (!ll) {
-    return OPERATOR_FINISHED;
-  }
-
-  int index = RNA_int_get(op->ptr, "index");
-
-  for (llc = ll->components.first; llc; llc = llc->next) {
-    if (index == i) {
-      break;
-    }
-    i++;
-  }
-
-  if (llc) {
-    BLI_remlink(&ll->components, llc);
-    MEM_freeN(llc);
-  }
-
-  return OPERATOR_FINISHED;
-}
-int lanpr_rebuild_all_commands_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-
-  lanpr_rebuild_all_command(lanpr);
-
-  DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
-
-  WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, NULL);
-
-  return OPERATOR_FINISHED;
-}
-int lanpr_enable_all_line_types_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-  LANPR_LineLayer *ll;
-
-  if (!(ll = lanpr->active_layer)) {
-    return OPERATOR_FINISHED;
-  }
-
-  ll->enable_contour = 1;
-  ll->enable_crease = 1;
-  ll->enable_edge_mark = 1;
-  ll->enable_material_seperate = 1;
-  ll->enable_intersection = 1;
-
-  copy_v3_v3(ll->contour_color, ll->color);
-  copy_v3_v3(ll->crease_color, ll->color);
-  copy_v3_v3(ll->edge_mark_color, ll->color);
-  copy_v3_v3(ll->material_color, ll->color);
-  copy_v3_v3(ll->intersection_color, ll->color);
-
-  ll->thickness_contour = 1;
-  ll->thickness_crease = 1;
-  ll->thickness_material = 1;
-  ll->thickness_edge_mark = 1;
-  ll->thickness_intersection = 1;
-
-  return OPERATOR_FINISHED;
-}
-int lanpr_auto_create_line_layer_exec(struct bContext *C, struct wmOperator *op)
-{
-  Scene *scene = CTX_data_scene(C);
-  SceneLANPR *lanpr = &scene->lanpr;
-
-  LANPR_LineLayer *ll;
-
-  ll = lanpr_new_line_layer(lanpr);
-  ll->thickness = 1.7;
-
-  lanpr_enable_all_line_types_exec(C, op);
-
-  ll = lanpr_new_line_layer(lanpr);
-  ll->thickness = 0.9;
-  copy_v3_fl(ll->color, 0.6);
-
-  lanpr_enable_all_line_types_exec(C, op);
-
-  ll = lanpr_new_line_layer(lanpr);
-  ll->thickness = 0.7;
-  copy_v3_fl(ll->color, 0.5);
-
-  lanpr_enable_all_line_types_exec(C, op);
-
-  lanpr_rebuild_all_command(lanpr);
-
-  return OPERATOR_FINISHED;
-}
-
-
-
-void SCENE_OT_lanpr_add_line_layer(struct wmOperatorType *ot)
-{
-
-  ot->name = "Add Line Layer";
-  ot->description = "Add a new line layer";
-  ot->idname = "SCENE_OT_lanpr_add_line_layer";
-
-  ot->exec = lanpr_add_line_layer_exec;
-}
-void SCENE_OT_lanpr_delete_line_layer(struct wmOperatorType *ot)
-{
-
-  ot->name = "Delete Line Layer";
-  ot->description = "Delete selected line layer";
-  ot->idname = "SCENE_OT_lanpr_delete_line_layer";
-
-  ot->exec = lanpr_delete_line_layer_exec;
-}
-void SCENE_OT_lanpr_rebuild_all_commands(struct wmOperatorType *ot)
-{
-
-  ot->name = "Refresh Drawing Commands";
-  ot->description = "Refresh LANPR line layer drawing commands";
-  ot->idname = "SCENE_OT_lanpr_rebuild_all_commands";
-
-  ot->exec = lanpr_rebuild_all_commands_exec;
-}
-void SCENE_OT_lanpr_auto_create_line_layer(struct wmOperatorType *ot)
-{
-
-  ot->name = "Auto Create Line Layer";
-  ot->description = "Automatically create defalt line layer config";
-  ot->idname = "SCENE_OT_lanpr_auto_create_line_layer";
-
-  ot->exec = lanpr_auto_create_line_layer_exec;
-}
-void SCENE_OT_lanpr_move_line_layer(struct wmOperatorType *ot)
-{
-  static const EnumPropertyItem line_layer_move[] = {
-      {1, "UP", 0, "Up", ""}, {-1, "DOWN", 0, "Down", ""}, {0, NULL, 0, NULL, NULL}};
-
-  ot->name = "Move Line Layer";
-  ot->description = "Move LANPR line layer up and down";
-  ot->idname = "SCENE_OT_lanpr_move_line_layer";
-
-  /*  this need property to assign up/down direction */
-
-  ot->exec = lanpr_move_line_layer_exec;
-
-  RNA_def_enum(ot->srna,
-               "direction",
-               line_layer_move,
-               0,
-               "Direction",
-               "Direction to move the active line layer towards");
-}
-void SCENE_OT_lanpr_enable_all_line_types(struct wmOperatorType *ot)
-{
-  ot->name = "Enable All Line Types";
-  ot->description = "Enable All Line Types In This Line Layer.";
-  ot->idname = "SCENE_OT_lanpr_enable_all_line_types";
-
-  ot->exec = lanpr_enable_all_line_types_exec;
-}
-
-void SCENE_OT_lanpr_add_line_component(struct wmOperatorType *ot)
-{
-
-  ot->name = "Add Line Component";
-  ot->description = "Add a new line Component";
-  ot->idname = "SCENE_OT_lanpr_add_line_component";
-
-  ot->exec = lanpr_add_line_component_exec;
-}
-void SCENE_OT_lanpr_delete_line_component(struct wmOperatorType *ot)
-{
-
-  ot->name = "Delete Line Component";
-  ot->description = "Delete selected line component";
-  ot->idname = "SCENE_OT_lanpr_delete_line_component";
-
-  ot->exec = lanpr_delete_line_component_exec;
-
-  RNA_def_int(ot->srna, "index", 0, 0, 10000, "index", "index of this line component", 0, 10000);
-}
diff --git a/source/blender/editors/lanpr/lanpr_ops.c b/source/blender/editors/lanpr/lanpr_ops.c
index f08e0bf779c..ba4832c40f4 100644
--- a/source/blender/editors/lanpr/lanpr_ops.c
+++ b/source/blender/editors/lanpr/lanpr_ops.c
@@ -48,6 +48,11 @@
 #include "BKE_context.h"
 #include "MEM_guardedalloc.h"
 
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "BLI_math.h"
+
 #include "bmesh.h"
 #include "bmesh_class.h"
 #include "bmesh_tools.h"
@@ -87,6 +92,325 @@ void ED_lanpr_free_everything(struct Scene *s);
 
 
 
+/* Layer operations */
+
+int ED_lanpr_max_occlusion_in_line_layers(SceneLANPR *lanpr)
+{
+  LANPR_LineLayer *lli;
+  int max_occ = -1, max;
+  for (lli = 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list