Import_3ds: Preserve object hierarchy #104790

Merged
Sebastian Sille merged 33 commits from :main into main 2023-07-28 09:39:24 +02:00
Showing only changes of commit 4d4e74437d - Show all commits

View File

@ -56,7 +56,7 @@ class Import3DS(bpy.types.Operator, ImportHelper):
default=10.0, default=10.0,
) )
convert_unit: BoolProperty( convert_unit: BoolProperty(
name="Convert Units", name="Scene Units",
description="Converts to scene unit length settings", description="Converts to scene unit length settings",
default=False, default=False,
) )
@ -84,7 +84,7 @@ class Import3DS(bpy.types.Operator, ImportHelper):
default=True, default=True,
) )
read_keyframe: BoolProperty( read_keyframe: BoolProperty(
name="Read Keyframe", name="Animation",
description="Read the keyframe data", description="Read the keyframe data",
default=True, default=True,
) )
@ -134,9 +134,13 @@ class MAX3DS_PT_import_include(bpy.types.Panel):
sfile = context.space_data sfile = context.space_data
operator = sfile.active_operator operator = sfile.active_operator
layout.prop(operator, "use_image_search") layrow = layout.row(align=True)
layrow.prop(operator, "use_image_search")
layrow.label(text="", icon='OUTLINER_OB_IMAGE' if operator.use_image_search else 'IMAGE_DATA')
layout.column().prop(operator, "object_filter") layout.column().prop(operator, "object_filter")
layout.prop(operator, "read_keyframe") layrow = layout.row(align=True)
layrow.prop(operator, "read_keyframe")
layrow.label(text="", icon='ANIM' if operator.read_keyframe else 'DECORATE_DRIVER')
class MAX3DS_PT_import_transform(bpy.types.Panel): class MAX3DS_PT_import_transform(bpy.types.Panel):
@ -161,9 +165,15 @@ class MAX3DS_PT_import_transform(bpy.types.Panel):
operator = sfile.active_operator operator = sfile.active_operator
layout.prop(operator, "constrain_size") layout.prop(operator, "constrain_size")
layout.prop(operator, "convert_unit") layrow = layout.row(align=True)
layout.prop(operator, "use_apply_transform") layrow.prop(operator, "convert_unit")
layout.prop(operator, "use_world_matrix") layrow.label(text="", icon='EMPTY_ARROWS' if operator.convert_unit else 'EMPTY_DATA')
layrow = layout.row(align=True)
layrow.prop(operator, "use_apply_transform")
layrow.label(text="", icon='MESH_CUBE' if operator.use_apply_transform else 'MOD_SOLIDIFY')
layrow = layout.row(align=True)
layrow.prop(operator, "use_world_matrix")
layrow.label(text="", icon='WORLD' if operator.use_world_matrix else 'META_BALL')
layout.prop(operator, "axis_forward") layout.prop(operator, "axis_forward")
layout.prop(operator, "axis_up") layout.prop(operator, "axis_up")
@ -194,7 +204,7 @@ class Export3DS(bpy.types.Operator, ExportHelper):
default=False, default=False,
) )
use_selection: BoolProperty( use_selection: BoolProperty(
name="Selection Only", name="Selection",
description="Export selected objects only", description="Export selected objects only",
default=False, default=False,
) )
@ -210,12 +220,12 @@ class Export3DS(bpy.types.Operator, ExportHelper):
default={'WORLD', 'MESH', 'LIGHT', 'CAMERA', 'EMPTY'}, default={'WORLD', 'MESH', 'LIGHT', 'CAMERA', 'EMPTY'},
) )
use_hierarchy: BoolProperty( use_hierarchy: BoolProperty(
name="Export Hierarchy", name="Hierarchy",
description="Export hierarchy chunks", description="Export hierarchy chunks",
default=False, default=False,
) )
write_keyframe: BoolProperty( write_keyframe: BoolProperty(
name="Export Keyframes", name="Animation",
description="Write the keyframe data", description="Write the keyframe data",
default=False, default=False,
) )
@ -260,10 +270,17 @@ class MAX3DS_PT_export_include(bpy.types.Panel):
sfile = context.space_data sfile = context.space_data
operator = sfile.active_operator operator = sfile.active_operator
layout.prop(operator, "use_selection") layrow = layout.row(align=True)
layrow.prop(operator, "use_selection")
layrow.label(text="", icon='RESTRICT_SELECT_OFF' if operator.use_selection else 'RESTRICT_SELECT_ON')
layout.column().prop(operator, "object_filter") layout.column().prop(operator, "object_filter")
layout.prop(operator, "use_hierarchy") layrow = layout.row(align=True)
layout.prop(operator, "write_keyframe") layrow.prop(operator, "use_hierarchy")
layrow.label(text="", icon='OUTLINER' if operator.use_hierarchy else 'CON_CHILDOF')
layrow = layout.row(align=True)
layrow.prop(operator, "write_keyframe")
layrow.label(text="", icon='ANIM' if operator.write_keyframe else 'DECORATE_DRIVER')
layout.use_property_split = True
class MAX3DS_PT_export_transform(bpy.types.Panel): class MAX3DS_PT_export_transform(bpy.types.Panel):
@ -288,7 +305,9 @@ class MAX3DS_PT_export_transform(bpy.types.Panel):
operator = sfile.active_operator operator = sfile.active_operator
layout.prop(operator, "scale_factor") layout.prop(operator, "scale_factor")
layout.prop(operator, "apply_unit") layrow = layout.row(align=True)
layrow.prop(operator, "apply_unit")
layrow.label(text="", icon='EMPTY_ARROWS' if operator.apply_unit else 'EMPTY_DATA')
layout.prop(operator, "axis_forward") layout.prop(operator, "axis_forward")
layout.prop(operator, "axis_up") layout.prop(operator, "axis_up")