Brushstroke Tools: Initial Version #328
@ -9,8 +9,6 @@ def node_group_settings(ng_settings, op_settings):
|
|||||||
ng_settings.nodes['Smear'].outputs[0].default_value = op_settings.brush_smear
|
ng_settings.nodes['Smear'].outputs[0].default_value = op_settings.brush_smear
|
||||||
#ng_settings.nodes["Object Info"].inputs[0].default_value = surface_object
|
#ng_settings.nodes["Object Info"].inputs[0].default_value = surface_object
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
class BSBST_OT_draw(bpy.types.Operator):
|
class BSBST_OT_draw(bpy.types.Operator):
|
||||||
"""
|
"""
|
||||||
Custom draw operation for hair curves
|
Custom draw operation for hair curves
|
||||||
|
@ -214,8 +214,6 @@ class BSBST_OT_init_preset(bpy.types.Operator):
|
|||||||
utils.mark_socket_context_type(mod_info, 'Socket_2', 'FLOW_OBJECT')
|
utils.mark_socket_context_type(mod_info, 'Socket_2', 'FLOW_OBJECT')
|
||||||
utils.mark_socket_context_type(mod_info, 'Socket_3', 'UVMAP')
|
utils.mark_socket_context_type(mod_info, 'Socket_3', 'UVMAP')
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
def init_draw(self, context):
|
def init_draw(self, context):
|
||||||
settings = context.scene.BSBST_settings
|
settings = context.scene.BSBST_settings
|
||||||
|
|
||||||
@ -244,8 +242,6 @@ class BSBST_OT_init_preset(bpy.types.Operator):
|
|||||||
|
|
||||||
utils.mark_socket_context_type(mod_info, 'Socket_2', 'SURFACE_OBJECT')
|
utils.mark_socket_context_type(mod_info, 'Socket_2', 'SURFACE_OBJECT')
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
|
|
||||||
settings = context.scene.BSBST_settings
|
settings = context.scene.BSBST_settings
|
||||||
|
@ -38,7 +38,6 @@ def find_context_brushstrokes(dummy):
|
|||||||
settings.active_context_brushstrokes_index = idx
|
settings.active_context_brushstrokes_index = idx
|
||||||
SimonThommes marked this conversation as resolved
Outdated
|
|||||||
|
|
||||||
settings.active_context_brushstrokes_index = max(min(settings.active_context_brushstrokes_index, len(settings.context_brushstrokes)-1), 0)
|
settings.active_context_brushstrokes_index = max(min(settings.active_context_brushstrokes_index, len(settings.context_brushstrokes)-1), 0)
|
||||||
return
|
|
||||||
|
|
||||||
def update_active_brushstrokes(self, context):
|
def update_active_brushstrokes(self, context):
|
||||||
settings = context.scene.BSBST_settings
|
settings = context.scene.BSBST_settings
|
||||||
@ -47,18 +46,15 @@ def update_active_brushstrokes(self, context):
|
|||||||
if not ob:
|
if not ob:
|
||||||
continue
|
continue
|
||||||
ob['BSBST_active'] = i == settings.active_context_brushstrokes_index
|
ob['BSBST_active'] = i == settings.active_context_brushstrokes_index
|
||||||
return
|
|
||||||
|
|
||||||
def update_brushstroke_method(self, context):
|
def update_brushstroke_method(self, context):
|
||||||
settings = context.scene.BSBST_settings
|
settings = context.scene.BSBST_settings
|
||||||
preset_name = f'BSBST-PRESET_{settings.brushstroke_method}'
|
preset_name = f'BSBST-PRESET_{settings.brushstroke_method}'
|
||||||
preset_object = bpy.data.objects.get(preset_name)
|
preset_object = bpy.data.objects.get(preset_name)
|
||||||
settings.preset_object = preset_object
|
settings.preset_object = preset_object
|
||||||
return
|
|
||||||
|
|
||||||
def update_link_context_type(self, context):
|
def update_link_context_type(self, context):
|
||||||
self.link_context = True
|
self.link_context = True
|
||||||
return
|
|
||||||
|
|
||||||
def get_brushstroke_name(self):
|
def get_brushstroke_name(self):
|
||||||
return self["name"]
|
return self["name"]
|
||||||
@ -79,8 +75,6 @@ def set_brushstroke_name(self, value):
|
|||||||
flow_ob.name = flow_name
|
flow_ob.name = flow_name
|
||||||
flow_ob.data.name = flow_name
|
flow_ob.data.name = flow_name
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
def get_active_context_brushstrokes_index(self):
|
def get_active_context_brushstrokes_index(self):
|
||||||
if not self.get('active_context_brushstrokes_index'):
|
if not self.get('active_context_brushstrokes_index'):
|
||||||
return 0
|
return 0
|
||||||
|
@ -46,7 +46,7 @@ def draw_panel_ui_recursive(panel, panel_name, mod, items):
|
|||||||
input_row.prop(mod, f'["{v.identifier}"]', text=k)
|
input_row.prop(mod, f'["{v.identifier}"]', text=k)
|
||||||
if not mod_info:
|
if not mod_info:
|
||||||
continue
|
continue
|
||||||
if type(v) in utils.linkable_sockets and (attribute_toggle or not f'{v.identifier}_use_attribute' in mod.keys()):
|
if type(v) in utils.linkable_sockets and (attribute_toggle or f'{v.identifier}_use_attribute' not in mod.keys()):
|
||||||
s = mod_info.socket_info.get(v.identifier)
|
s = mod_info.socket_info.get(v.identifier)
|
||||||
if not s:
|
if not s:
|
||||||
continue
|
continue
|
||||||
@ -59,7 +59,6 @@ def draw_panel_ui_recursive(panel, panel_name, mod, items):
|
|||||||
row.prop(s, 'link_context', text='', icon=icon)
|
row.prop(s, 'link_context', text='', icon=icon)
|
||||||
else:
|
else:
|
||||||
row.prop(s, 'link_context_type', text='', emboss=True, icon='LINKED', icon_only=True)
|
row.prop(s, 'link_context_type', text='', emboss=True, icon='LINKED', icon_only=True)
|
||||||
return
|
|
||||||
|
|
||||||
class BSBST_UL_brushstroke_objects(bpy.types.UIList):
|
class BSBST_UL_brushstroke_objects(bpy.types.UIList):
|
||||||
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
||||||
@ -185,7 +184,6 @@ class BSBST_PT_brushstroke_tools_panel(bpy.types.Panel):
|
|||||||
style_panel.operator('brushstroke_tools.preset_add_mod', icon='ADD')
|
style_panel.operator('brushstroke_tools.preset_add_mod', icon='ADD')
|
||||||
else:
|
else:
|
||||||
style_panel.operator('object.modifier_add', text='Add Modifier', icon='ADD')
|
style_panel.operator('object.modifier_add', text='Add Modifier', icon='ADD')
|
||||||
return
|
|
||||||
|
|
||||||
classes = [
|
classes = [
|
||||||
BSBST_UL_brushstroke_objects,
|
BSBST_UL_brushstroke_objects,
|
||||||
|
@ -35,7 +35,6 @@ def refresh_preset(dummy):
|
|||||||
n = mod_info.socket_info.add()
|
n = mod_info.socket_info.add()
|
||||||
n.name = v.identifier
|
n.name = v.identifier
|
||||||
# TODO: clean up old settings
|
# TODO: clean up old settings
|
||||||
return
|
|
||||||
|
|
||||||
def mark_socket_context_type(mod_info, socket_name, link_type):
|
def mark_socket_context_type(mod_info, socket_name, link_type):
|
||||||
socket_info = mod_info.socket_info.get(socket_name)
|
socket_info = mod_info.socket_info.get(socket_name)
|
||||||
@ -43,7 +42,6 @@ def mark_socket_context_type(mod_info, socket_name, link_type):
|
|||||||
socket_info = mod_info.socket_info.add()
|
socket_info = mod_info.socket_info.add()
|
||||||
socket_info.name = socket_name
|
socket_info.name = socket_name
|
||||||
socket_info.link_context_type = link_type
|
socket_info.link_context_type = link_type
|
||||||
return
|
|
||||||
|
|
||||||
def get_addon_directory() -> str:
|
def get_addon_directory() -> str:
|
||||||
"""
|
"""
|
||||||
@ -70,7 +68,6 @@ def ensure_resources():
|
|||||||
|
|
||||||
if ng_missing:
|
if ng_missing:
|
||||||
import_resources(list(ng_missing))
|
import_resources(list(ng_missing))
|
||||||
return
|
|
||||||
|
|
||||||
def transfer_modifier(modifier_name, target_obj, source_obj):
|
def transfer_modifier(modifier_name, target_obj, source_obj):
|
||||||
"""
|
"""
|
||||||
@ -104,7 +101,7 @@ def is_brushstrokes_object(object):
|
|||||||
|
|
||||||
def is_surface_object(object):
|
def is_surface_object(object):
|
||||||
for ob in bpy.data.objects:
|
for ob in bpy.data.objects:
|
||||||
if not 'BSBST_surface_object' in ob.keys():
|
if 'BSBST_surface_object' not in ob.keys():
|
||||||
continue
|
continue
|
||||||
if ob['BSBST_surface_object'] == object:
|
if ob['BSBST_surface_object'] == object:
|
||||||
return True
|
return True
|
||||||
@ -112,19 +109,19 @@ def is_surface_object(object):
|
|||||||
|
|
||||||
def is_flow_object(object):
|
def is_flow_object(object):
|
||||||
for ob in bpy.data.objects:
|
for ob in bpy.data.objects:
|
||||||
if not 'BSBST_flow_object' in ob.keys():
|
if 'BSBST_flow_object' not in ob.keys():
|
||||||
continue
|
continue
|
||||||
if ob['BSBST_flow_object'] == object:
|
if ob['BSBST_flow_object'] == object:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_surface_object(bs):
|
def get_surface_object(bs):
|
||||||
if not 'BSBST_surface_object' in bs.keys():
|
if 'BSBST_surface_object' not in bs.keys():
|
||||||
return None
|
return None
|
||||||
return bs['BSBST_surface_object']
|
return bs['BSBST_surface_object']
|
||||||
|
|
||||||
def get_flow_object(bs):
|
def get_flow_object(bs):
|
||||||
if not 'BSBST_flow_object' in bs.keys():
|
if 'BSBST_flow_object' not in bs.keys():
|
||||||
return None
|
return None
|
||||||
return bs['BSBST_flow_object']
|
return bs['BSBST_flow_object']
|
||||||
|
|
||||||
SimonThommes marked this conversation as resolved
Outdated
Jacques Lucke
commented
Would recommend using Would recommend using `x not in y` instead of `not x in y` for improved readability.
https://stackoverflow.com/a/3481700
|
|||||||
|
Loading…
Reference in New Issue
Block a user
Generally, the code would be easier to read if line lengths were more limited. E.g. for Blender we have a 120 line length limit. That also makes it easier to have two files open next to each other. Such limits can be enforced automatically with auto-formatters like
autopep8
(what we currently use in Blender) or e.g.black
.