[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

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Nov 28 13:52:44 CET 2012


This is supposed to be working, I specifically changed the normal
drawing widget to show colors when keyframing. Let me figure out why
it isn't working now...

Brecht.

On Wed, Nov 28, 2012 at 12:08 PM, Lukas Tönne <lukas.toenne at gmail.com> wrote:
> 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
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers


More information about the Bf-committers mailing list