gp_interpolate/ui.py

74 lines
2.5 KiB
Python
Executable File

import bpy
class GP_PT_interpolate(bpy.types.Panel):
bl_label = "Interpolate"
bl_category = "Gpencil"
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
@classmethod
def poll(cls, context):
return context.object # and context.object.type == 'GPENCIL'
def draw(self, context):
settings = bpy.context.scene.gp_interpo_settings
layout = self.layout
layout.use_property_split = True
col = layout.column(align=False)
## Interpolation buttons
if settings.mode == 'FRAME':
prev_icon, next_icon = 'FRAME_PREV', 'FRAME_NEXT'
else:
prev_icon, next_icon = 'PREV_KEYFRAME', 'NEXT_KEYFRAME'
row = col.row(align=True)
row.scale_x = 3
row.operator("gp.interpolate_stroke", text="", icon=prev_icon).next = False
row.operator("gp.interpolate_stroke", text="", icon=next_icon).next = True
col.prop(settings, 'use_animation', text='Animation')
col.prop(settings, 'method', text='Method')
if settings.method == 'BONE':
col = layout.column(align=True)
col.prop_search(settings, 'target_rig', context.scene, 'objects', text='Rig')
if settings.target_rig:
# col.prop_search(ob.rig_picker, 'name', settings.target_rig.pose, 'bones', text='Bone')
col.prop_search(settings, 'target_bone', settings.target_rig.pose, 'bones', text='Bone')
col.prop(settings, 'use_bone_rotation', text='Use Bone Rotation')
elif settings.method == 'GEOMETRY':
col.prop(settings, 'target_collection', text='Collection')
col.prop(settings, 'search_range')
col.prop(settings, 'remove_occluded')
elif settings.method == 'OBJECT':
col.prop(settings, 'target_object', text='Object')
col.separator()
col = layout.column(align=True)
row = col.row(align=True)
row.prop(settings, 'mode', expand=True)
if settings.mode == 'FRAME':
col.prop(settings, 'padding')
## Parent still full WIP
# col = layout.column()
# col.label(text='Layer Parent')
# col.operator('gp.parent_layer', text='Direct Parent').direct_parent = True
# col.operator('gp.parent_layer', text='Empty Parent').direct_parent = False
classes = (
GP_PT_interpolate,
)
def register():
for c in classes:
bpy.utils.register_class(c)
def unregister():
for c in reversed(classes) :
bpy.utils.unregister_class(c)