Created by: zeffii
Addressed problem description
in Sverchok nodes we use a StringProperty
to store the names of objects that we reference in the node tree. (like Materials, Objects, Texts, Fonts... anything bpy.data.*
). The problem with that approach is that when the user renames a datablock, the StringProperty is not automatically renamed, this results in a 'link being lost'. Because naming is import in Graphics and Modelling scenes, just as it is with programming, it is important to be able name and rename objects to reflect what they are.
At runtime we should be storing object references (object in the broader sense...anything in bpy.data.*
) primarily as PointerProperties, and only then store the object.name
if it's useful, and for iojson serialization.
Solution description
Those nodes that use prop_search, and there are many, will be revised. The beast is broken.
Preflight checklist
-
Code changes complete. -
generator\script1_lite.py -
generators_extended\profile_mk3.py -
scene\collection_picker_mk1.py -
scene\objects_mk3.py -
script\multi_exec.py -
script\sn_functor_b.py -
generators_extended\mesh_eval.py -
object_nodes\get_asset_properties.py -
scene\node_remote.py -
scene\dupli_instances_mk4.py -
analyzer\image_components.py -
generators_extended\hilbert_image.py -
scene\FCurve_in.py -
generator\image.py -
generators_extended\generative_art.py -
text\text_in_mk2.py -
text\text_out_mk2.py -
viz\viewer_texture_lite.py ( image file ) -
viz\viewer_typography.py ( font file ) -
field\image_field.py -
object_nodes\assign_materials.py -
object_nodes\color_uv_texture.py -
object_nodes\points_from_uv_to_mesh.py -
object_nodes\sample_uv_color.py -
transforms\texture_displace.py -
vector\texture_evaluate.py -
viz\viewer_bmesh.py -
old_nodes\profile_mk2.py
-
-
Code documentation complete. -
Documentation for users complete (or not required, if user never sees these changes). -
Manual testing done. -
Unit-tests implemented. -
Ready for merge.