On 21.10.2015 20:35, Francesc Juhe wrote:
> On 21 Oct 2015, at 16:32, Alexander Romanov <[email protected]> wrote:
>
>> There is a problem of backward compatibility. You need to think
>> carefully and not to break existing Addons if you want to remove custom
>> trees from bpy.data.node_groups. In any case, it will be a low-level
>> pointer. As I understand internal nodes are stored in specified
>> datablocks such as Material, Scene... And they are ina hard hierarchical
>> relationship. Internal nodetree depends onits parent datablock. You can
>> choose this parent datablock from a collection like bpy.data.Materials,
>> but can't reuse its nodetree by some another datablock. In the case of a
>> custom nodetree it is useful to have a possibility to reuse a nodetree.
>> So, maybe it would be more accurate to have access to custom nodetrees
>> from, say, bpy.data.custom_node_trees, but it works fine now for
>> bpy.data.node_groups.
> Yes, you are right about compatibility and reusability of node_groups in the 
> current format. Ok, don’t think more about it.
> Being able to link to data with a proper IDPointerProperty is the way to go.
>
>>> As for issue, (1) Generalized nodetree editing, I think this could work:
>>>
>>> - Add a property to SpaceNodeEditor to hold the custom nodetree type.
>>> - Add a function registered on NodeTreeType that returns a list of accepted 
>>> data sources.
>> I think, it would looks like:
>>
>> class MyNodeTree(bpy.types.NodeTree):
>>      bl_idname ='MyNodeTree'
>>      bl_source_types = {"OBJECT", "WORLD", "MATERIAL”}
> I was thinking on a function like the one accepted by EnumProperty that 
> returned items (sequence of string tuples or a function) – sequence of enum 
> items formatted: [(identifier, name, description, icon, number), …]
> I think it would be more versatile for custom node trees.
I think that the "parent" datablocks types should be defined in blender 
kernel likeit was doneforAnimData. Thus there is a countable set of 
types. Each type has general meaning for all custom nodetrees. So it 
seems that is no need to move this work into scripting.
>>> - Add appropriate draw code on space_node.py to draw the data source icons 
>>> provided by the function and storing it on the SpaceNodeEditor property.
>>> - NodeTreeType then uses the property to know the data source selected on 
>>> the Node Editor.
>>>
>>> I wanted to try to make a patch for this but haven’t had the time yet, I 
>>> think this issue is not as difficult as the other.
>> if you start before melet me know, please. Iwill also informyou.
>>> In the Mitsuba Addon I am reusing SpaceNodeEditor.shader_type to select 
>>> between world and object data source and works ok.
>>>
>>>
> _______________________________________________
> Bf-committers mailing list
> [email protected]
> http://lists.blender.org/mailman/listinfo/bf-committers

-- 
Alexander Romanov (Blend4Web Team)

_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to