svn merge ^/trunk/blender -r47253:47272
authorCampbell Barton <ideasman42@gmail.com>
Thu, 31 May 2012 11:58:14 +0000 (11:58 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 31 May 2012 11:58:14 +0000 (11:58 +0000)
1  2 
source/blender/editors/space_node/drawnode.c
source/blender/makesdna/DNA_node_types.h
source/blender/makesrna/intern/rna_nodetree.c

index 2db808e7a599cb48705d36cea14ffc4792a04b75,676b1276569869917ce20864cc61fd609835bd68..5c9f066937aa138fe58c5a41417a4c20ab3e5b99
@@@ -1641,7 -1641,7 +1641,7 @@@ static void node_composit_buts_dilateer
  {
        uiItemR(layout, ptr, "type", 0, NULL, ICON_NONE);
        uiItemR(layout, ptr, "distance", 0, NULL, ICON_NONE);
-       if (RNA_enum_get(ptr, "type") == CMP_NODE_DILATEERODE_DISTANCE) {
+       if (RNA_enum_get(ptr, "type") == CMP_NODE_DILATEERODE_DISTANCE_THRESH) {
                uiItemR(layout, ptr, "edge", 0, NULL, ICON_NONE);
        }
  }
@@@ -2288,41 -2288,6 +2288,41 @@@ static void node_composit_buts_viewer_b
        }
  }
  
 +static void node_composit_buts_mask(uiLayout *layout, bContext *C, PointerRNA *ptr)
 +{
 +      uiTemplateID(layout, C, ptr, "mask", NULL, NULL, NULL);
 +}
 +
 +static void node_composit_buts_keyingscreen(uiLayout *layout, bContext *C, PointerRNA *ptr)
 +{
 +      bNode *node= ptr->data;
 +
 +      uiTemplateID(layout, C, ptr, "clip", NULL, NULL, NULL);
 +
 +      if (node->id) {
 +              MovieClip *clip = (MovieClip *) node->id;
 +              uiLayout *col;
 +              PointerRNA tracking_ptr;
 +
 +              RNA_pointer_create(&clip->id, &RNA_MovieTracking, &clip->tracking, &tracking_ptr);
 +
 +              col = uiLayoutColumn(layout, 1);
 +              uiItemPointerR(col, ptr, "tracking_object", &tracking_ptr, "objects", "", ICON_OBJECT_DATA);
 +      }
 +}
 +
 +static void node_composit_buts_keying(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
 +{
 +      /* bNode *node= ptr->data; */ /* UNUSED */
 +
 +      uiItemR(layout, ptr, "blur_pre", 0, NULL, ICON_NONE);
 +      uiItemR(layout, ptr, "despill_factor", 0, NULL, ICON_NONE);
 +      uiItemR(layout, ptr, "clip_black", 0, NULL, ICON_NONE);
 +      uiItemR(layout, ptr, "clip_white", 0, NULL, ICON_NONE);
 +      uiItemR(layout, ptr, "dilate_distance", 0, NULL, ICON_NONE);
 +      uiItemR(layout, ptr, "blur_post", 0, NULL, ICON_NONE);
 +}
 +
  /* only once called */
  static void node_composit_set_butfunc(bNodeType *ntype)
  {
                        ntype->uifuncbut = node_composit_buts_viewer_but;
                        ntype->uibackdropfunc = node_composit_backdrop_viewer;
                        break;
 -
 +              case CMP_NODE_MASK:
 +                      ntype->uifunc= node_composit_buts_mask;
 +                      break;
 +              case CMP_NODE_KEYINGSCREEN:
 +                      ntype->uifunc = node_composit_buts_keyingscreen;
 +                      break;
 +              case CMP_NODE_KEYING:
 +                      ntype->uifunc = node_composit_buts_keying;
 +                      break;
                default:
                        ntype->uifunc = NULL;
        }
index d605e9ac38fbe670c3bfec98aaf15bfcb2b8ead0,5b87ecc44aefe9ed2fee4e8292c391d7757cdb25..39f3fda11577a28d235d689d55d5b6cbbef7c040
@@@ -350,8 -350,9 +350,9 @@@ typedef struct bNodeSocketValueRGBA 
  #define CMP_NODE_LENSFLARE_CIRCLE  4
  #define CMP_NODE_LENSFLARE_STREAKS 8
  
- #define CMP_NODE_DILATEERODE_STEP     0
- #define CMP_NODE_DILATEERODE_DISTANCE 1
+ #define CMP_NODE_DILATEERODE_STEP            0
+ #define CMP_NODE_DILATEERODE_DISTANCE_THRESH 1
+ #define CMP_NODE_DILATEERODE_DISTANCE        2
  
  typedef struct NodeFrame {
        short flag;
@@@ -617,17 -618,6 +618,17 @@@ typedef struct TexNodeOutput 
        char name[64];
  } TexNodeOutput;
  
 +typedef struct NodeKeyingScreenData {
 +      char tracking_object[64];
 +} NodeKeyingScreenData;
 +
 +typedef struct NodeKeyingData {
 +      float despill_factor;
 +      float clip_black, clip_white;
 +      int dilate_distance;
 +      int blur_pre, blur_post;
 +} NodeKeyingData;
 +
  /* frame node flags */
  #define NODE_FRAME_SHRINK             1       /* keep the bounding box minimal */
  #define NODE_FRAME_RESIZEABLE 2       /* test flag, if frame can be resized by user */
index 8604fa0ef3152f8e2b586532770dd191a3f4e8cb,466a9b80c505ece63e74d1db360e00694e3a608f..1f574ba24733cb0edf8e8d102a1f99bf7aa1dd5b
@@@ -1994,8 -1994,9 +1994,9 @@@ static void def_cmp_dilate_erode(Struct
        PropertyRNA *prop;
  
        static EnumPropertyItem type_items[] = {
-               {CMP_NODE_DILATEERODE_STEP,     "STEP",       0, "Step",     ""},
-               {CMP_NODE_DILATEERODE_DISTANCE, "DISTANCE",   0, "Distance", ""},
+               {CMP_NODE_DILATEERODE_STEP,            "STEP",      0, "Step",      ""},
+           {CMP_NODE_DILATEERODE_DISTANCE_THRESH, "THRESHOLD", 0, "Threshold", ""},
+           {CMP_NODE_DILATEERODE_DISTANCE,        "DISTANCE",  0, "Distance",  ""},
                {0, NULL, 0, NULL, NULL}
        };
        
@@@ -3029,79 -3030,6 +3030,79 @@@ static void def_cmp_moviedistortion(Str
        RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
  }
  
 +static void def_cmp_mask(StructRNA *srna)
 +{
 +      PropertyRNA *prop;
 +
 +      prop = RNA_def_property(srna, "mask", PROP_POINTER, PROP_NONE);
 +      RNA_def_property_pointer_sdna(prop, NULL, "id");
 +      RNA_def_property_struct_type(prop, "Mask");
 +      RNA_def_property_flag(prop, PROP_EDITABLE);
 +      RNA_def_property_ui_text(prop, "Mask", "");
 +}
 +
 +static void def_cmp_keyingscreen(StructRNA *srna)
 +{
 +      PropertyRNA *prop;
 +
 +      prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
 +      RNA_def_property_pointer_sdna(prop, NULL, "id");
 +      RNA_def_property_struct_type(prop, "MovieClip");
 +      RNA_def_property_flag(prop, PROP_EDITABLE);
 +      RNA_def_property_ui_text(prop, "Movie Clip", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +
 +      RNA_def_struct_sdna_from(srna, "NodeKeyingScreenData", "storage");
 +
 +      prop = RNA_def_property(srna, "tracking_object", PROP_STRING, PROP_NONE);
 +      RNA_def_property_string_sdna(prop, NULL, "tracking_object");
 +      RNA_def_property_ui_text(prop, "Tracking Object", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +}
 +
 +static void def_cmp_keying(StructRNA *srna)
 +{
 +      PropertyRNA *prop;
 +
 +      RNA_def_struct_sdna_from(srna, "NodeKeyingData", "storage");
 +
 +      prop = RNA_def_property(srna, "despill_factor", PROP_FLOAT, PROP_NONE);
 +      RNA_def_property_float_sdna(prop, NULL, "despill_factor");
 +      RNA_def_property_range(prop, 0.0f, 1.0f);
 +      RNA_def_property_ui_text(prop, "Despill", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +
 +      prop = RNA_def_property(srna, "clip_black", PROP_FLOAT, PROP_FACTOR);
 +      RNA_def_property_float_sdna(prop, NULL, "clip_black");
 +      RNA_def_property_range(prop, 0.0f, 1.0f);
 +      RNA_def_property_ui_text(prop, "Clip Black", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +
 +      prop = RNA_def_property(srna, "clip_white", PROP_FLOAT, PROP_FACTOR);
 +      RNA_def_property_float_sdna(prop, NULL, "clip_white");
 +      RNA_def_property_range(prop, 0.0f, 1.0f);
 +      RNA_def_property_ui_text(prop, "Clip White", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +
 +      prop = RNA_def_property(srna, "blur_pre", PROP_INT, PROP_NONE);
 +      RNA_def_property_int_sdna(prop, NULL, "blur_pre");
 +      RNA_def_property_range(prop, 0, 2048);
 +      RNA_def_property_ui_text(prop, "Pre Blur", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +
 +      prop = RNA_def_property(srna, "blur_post", PROP_INT, PROP_NONE);
 +      RNA_def_property_int_sdna(prop, NULL, "blur_post");
 +      RNA_def_property_range(prop, 0, 2048);
 +      RNA_def_property_ui_text(prop, "Post Blur", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +
 +      prop = RNA_def_property(srna, "dilate_distance", PROP_INT, PROP_NONE);
 +      RNA_def_property_int_sdna(prop, NULL, "dilate_distance");
 +      RNA_def_property_range(prop, -100, 100);
 +      RNA_def_property_ui_text(prop, "Dilate/Erode", "");
 +      RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
 +}
 +
  static void dev_cmd_transform(StructRNA *srna)
  {
        PropertyRNA *prop;