[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52309] trunk/blender/source/blender: Fix compositing normal node not properly showing vector XYZ values when opening

Lukas Tönne lukas.toenne at gmail.com
Wed Nov 28 12:08:20 CET 2012


It seems that this replaces the "ball" thingy with numerical inputs
only. People have been complaining about this on twitter. The ball
widget is useful for fake lighting in compositing, especially since we
(still) don't have vector math in compo nodes ...

I would suggest reverting this ui button, or maybe add both the ball
and numerical values?

On Sat, Nov 17, 2012 at 5:11 PM, Brecht Van Lommel
<brechtvanlommel at pandora.be> wrote:
> Revision: 52309
>           http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52309
> Author:   blendix
> Date:     2012-11-17 16:11:02 +0000 (Sat, 17 Nov 2012)
> Log Message:
> -----------
> Fix compositing normal node not properly showing vector XYZ values when opening
> socket menu, and make the normal animatable.
>
> Modified Paths:
> --------------
>     trunk/blender/source/blender/compositor/nodes/COM_NormalNode.cpp
>     trunk/blender/source/blender/editors/interface/interface_layout.c
>     trunk/blender/source/blender/editors/interface/interface_widgets.c
>     trunk/blender/source/blender/editors/space_node/drawnode.c
>     trunk/blender/source/blender/nodes/composite/nodes/node_composite_normal.c
>
> Modified: trunk/blender/source/blender/compositor/nodes/COM_NormalNode.cpp
> ===================================================================
> --- trunk/blender/source/blender/compositor/nodes/COM_NormalNode.cpp    2012-11-17 16:10:47 UTC (rev 52308)
> +++ trunk/blender/source/blender/compositor/nodes/COM_NormalNode.cpp    2012-11-17 16:11:02 UTC (rev 52309)
> @@ -41,9 +41,14 @@
>         SetVectorOperation *operationSet = new SetVectorOperation();
>         bNodeSocket *insock = (bNodeSocket *)editorNode->outputs.first;
>         bNodeSocketValueVector *dval = (bNodeSocketValueVector *)insock->default_value;
> -       operationSet->setX(dval->value[0]);
> -       operationSet->setY(dval->value[1]);
> -       operationSet->setZ(dval->value[2]);
> +       float normal[3];
> +
> +       /* animation can break normalization, this restores it */
> +       normalize_v3_v3(normal, dval->value);
> +
> +       operationSet->setX(normal[0]);
> +       operationSet->setY(normal[1]);
> +       operationSet->setZ(normal[2]);
>         operationSet->setW(0.0f);
>
>         outputSocket->relinkConnections(operationSet->getOutputSocket(0));
>
> Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
> ===================================================================
> --- trunk/blender/source/blender/editors/interface/interface_layout.c   2012-11-17 16:10:47 UTC (rev 52308)
> +++ trunk/blender/source/blender/editors/interface/interface_layout.c   2012-11-17 16:11:02 UTC (rev 52309)
> @@ -430,7 +430,7 @@
>                                 but->type = NUMSLI;
>                 }
>         }
> -       else if (subtype == PROP_DIRECTION) {
> +       else if (subtype == PROP_DIRECTION && !expand) {
>                 uiDefButR_prop(block, BUT_NORMAL, 0, name, x, y, UI_UNIT_X * 3, UI_UNIT_Y * 3, ptr, prop, 0, 0, 0, -1, -1, NULL);
>         }
>         else {
>
> Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
> ===================================================================
> --- trunk/blender/source/blender/editors/interface/interface_widgets.c  2012-11-17 16:10:47 UTC (rev 52308)
> +++ trunk/blender/source/blender/editors/interface/interface_widgets.c  2012-11-17 16:11:02 UTC (rev 52309)
> @@ -2623,6 +2623,11 @@
>
>  }
>
> +static void widget_normal(uiBut *but, uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int UNUSED(roundboxalign))
> +{
> +       ui_draw_but_NORMAL(but, wcol, rect);
> +}
> +
>  static void widget_icon_has_anim(uiBut *UNUSED(but), uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign))
>  {
>         if (state & (UI_BUT_ANIMATED | UI_BUT_ANIMATED_KEY | UI_BUT_DRIVEN | UI_BUT_REDALERT)) {
> @@ -3030,6 +3035,7 @@
>                         break;
>
>                 case UI_WTYPE_NORMAL:
> +                       wt.custom = widget_normal;
>                         break;
>
>                 case UI_WTYPE_SCROLL:
> @@ -3269,7 +3275,7 @@
>                                 break;
>
>                         case BUT_NORMAL:
> -                               ui_draw_but_NORMAL(but, &tui->wcol_regular, rect);
> +                               wt = widget_type(UI_WTYPE_NORMAL);
>                                 break;
>
>                         case BUT_IMAGE:
>
> Modified: trunk/blender/source/blender/editors/space_node/drawnode.c
> ===================================================================
> --- trunk/blender/source/blender/editors/space_node/drawnode.c  2012-11-17 16:10:47 UTC (rev 52308)
> +++ trunk/blender/source/blender/editors/space_node/drawnode.c  2012-11-17 16:11:02 UTC (rev 52309)
> @@ -398,29 +398,15 @@
>         uiTemplateCurveMapping(layout, ptr, "mapping", 'c', 0, 0);
>  }
>
> -static void node_normal_cb(bContext *C, void *ntree_v, void *node_v)
> -{
> -       Main *bmain = CTX_data_main(C);
> -
> -       ED_node_generic_update(bmain, ntree_v, node_v);
> -       WM_event_add_notifier(C, NC_NODE | NA_EDITED, ntree_v);
> -}
> -
>  static void node_buts_normal(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
>  {
> -       uiBlock *block = uiLayoutAbsoluteBlock(layout);
> -       bNodeTree *ntree = ptr->id.data;
> -       bNode *node = ptr->data;
> -       rctf *butr = &node->butr;
> +       bNodeTree *ntree = (bNodeTree*)ptr->id.data;
> +       bNode *node = (bNode*)ptr->data;
>         bNodeSocket *sock = node->outputs.first;     /* first socket stores normal */
> -       float *nor = ((bNodeSocketValueVector *)sock->default_value)->value;
> -       uiBut *bt;
> -
> -       bt = uiDefButF(block, BUT_NORMAL, B_NODE_EXEC, "",
> -                      (int)butr->xmin, (int)butr->xmin,
> -                      (short)BLI_rctf_size_x(butr), (short)BLI_rctf_size_x(butr),
> -                      nor, 0.0f, 1.0f, 0, 0, "");
> -       uiButSetFunc(bt, node_normal_cb, ntree, node);
> +       PointerRNA sockptr;
> +
> +       RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &sockptr);
> +       uiItemR(layout, &sockptr, "default_value", 0, "", ICON_NONE);
>  }
>  #if 0 /* not used in 2.5x yet */
>  static void node_browse_tex_cb(bContext *C, void *ntree_v, void *node_v)
>
> Modified: trunk/blender/source/blender/nodes/composite/nodes/node_composite_normal.c
> ===================================================================
> --- trunk/blender/source/blender/nodes/composite/nodes/node_composite_normal.c  2012-11-17 16:10:47 UTC (rev 52308)
> +++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_normal.c  2012-11-17 16:11:02 UTC (rev 52309)
> @@ -40,7 +40,7 @@
>  };
>
>  static bNodeSocketTemplate cmp_node_normal_out[] = {
> -       {       SOCK_VECTOR, 0, N_("Normal")},
> +       {       SOCK_VECTOR, 0, N_("Normal"),   0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_DIRECTION},
>         {       SOCK_FLOAT, 0, N_("Dot")},
>         {       -1, 0, ""       }
>  };
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs


More information about the Bf-committers mailing list