Skip to content
Snippets Groups Projects
Commit f0986bee authored by Bastien Montagne's avatar Bastien Montagne
Browse files

Update to OBJ exporter: now you can choose wether to export smooth groups IDs...

Update to OBJ exporter: now you can choose wether to export smooth groups IDs as simple values or as bitflags.
parent 9a980567
No related branches found
No related tags found
No related merge requests found
...@@ -242,6 +242,12 @@ class ExportOBJ(bpy.types.Operator, ExportHelper): ...@@ -242,6 +242,12 @@ class ExportOBJ(bpy.types.Operator, ExportHelper):
description="Write sharp edges as smooth groups", description="Write sharp edges as smooth groups",
default=False, default=False,
) )
use_smooth_groups_bitflags = BoolProperty(
name="Bitflag Smooth Groups",
description="Same as 'Smooth Groups', but generate smooth groups IDs as bitflags "
"(produces at most 32 different smooth groups, usually much less)",
default=False,
)
use_normals = BoolProperty( use_normals = BoolProperty(
name="Include Normals", name="Include Normals",
description="", description="",
......
...@@ -246,6 +246,7 @@ def write_file(filepath, objects, scene, ...@@ -246,6 +246,7 @@ def write_file(filepath, objects, scene,
EXPORT_TRI=False, EXPORT_TRI=False,
EXPORT_EDGES=False, EXPORT_EDGES=False,
EXPORT_SMOOTH_GROUPS=False, EXPORT_SMOOTH_GROUPS=False,
EXPORT_SMOOTH_GROUPS_BITFLAGS=False,
EXPORT_NORMALS=False, EXPORT_NORMALS=False,
EXPORT_UV=True, EXPORT_UV=True,
EXPORT_MTL=True, EXPORT_MTL=True,
...@@ -402,8 +403,8 @@ def write_file(filepath, objects, scene, ...@@ -402,8 +403,8 @@ def write_file(filepath, objects, scene,
if EXPORT_NORMALS and face_index_pairs: if EXPORT_NORMALS and face_index_pairs:
me.calc_normals() me.calc_normals()
if EXPORT_SMOOTH_GROUPS and face_index_pairs: if (EXPORT_SMOOTH_GROUPS or EXPORT_SMOOTH_GROUPS_BITFLAGS) and face_index_pairs:
smooth_groups, smooth_groups_tot = me.calc_smooth_groups() smooth_groups, smooth_groups_tot = me.calc_smooth_groups(EXPORT_SMOOTH_GROUPS_BITFLAGS)
if smooth_groups_tot <= 1: if smooth_groups_tot <= 1:
smooth_groups, smooth_groups_tot = (), 0 smooth_groups, smooth_groups_tot = (), 0
else: else:
...@@ -690,6 +691,7 @@ def _write(context, filepath, ...@@ -690,6 +691,7 @@ def _write(context, filepath,
EXPORT_TRI, # ok EXPORT_TRI, # ok
EXPORT_EDGES, EXPORT_EDGES,
EXPORT_SMOOTH_GROUPS, EXPORT_SMOOTH_GROUPS,
EXPORT_SMOOTH_GROUPS_BITFLAGS,
EXPORT_NORMALS, # not yet EXPORT_NORMALS, # not yet
EXPORT_UV, # ok EXPORT_UV, # ok
EXPORT_MTL, EXPORT_MTL,
...@@ -742,6 +744,7 @@ def _write(context, filepath, ...@@ -742,6 +744,7 @@ def _write(context, filepath,
EXPORT_TRI, EXPORT_TRI,
EXPORT_EDGES, EXPORT_EDGES,
EXPORT_SMOOTH_GROUPS, EXPORT_SMOOTH_GROUPS,
EXPORT_SMOOTH_GROUPS_BITFLAGS,
EXPORT_NORMALS, EXPORT_NORMALS,
EXPORT_UV, EXPORT_UV,
EXPORT_MTL, EXPORT_MTL,
...@@ -775,6 +778,7 @@ def save(operator, context, filepath="", ...@@ -775,6 +778,7 @@ def save(operator, context, filepath="",
use_edges=True, use_edges=True,
use_normals=False, use_normals=False,
use_smooth_groups=False, use_smooth_groups=False,
use_smooth_groups_bitflags=False,
use_uvs=True, use_uvs=True,
use_materials=True, use_materials=True,
use_mesh_modifiers=True, use_mesh_modifiers=True,
...@@ -794,6 +798,7 @@ def save(operator, context, filepath="", ...@@ -794,6 +798,7 @@ def save(operator, context, filepath="",
EXPORT_TRI=use_triangles, EXPORT_TRI=use_triangles,
EXPORT_EDGES=use_edges, EXPORT_EDGES=use_edges,
EXPORT_SMOOTH_GROUPS=use_smooth_groups, EXPORT_SMOOTH_GROUPS=use_smooth_groups,
EXPORT_SMOOTH_GROUPS_BITFLAGS=use_smooth_groups_bitflags,
EXPORT_NORMALS=use_normals, EXPORT_NORMALS=use_normals,
EXPORT_UV=use_uvs, EXPORT_UV=use_uvs,
EXPORT_MTL=use_materials, EXPORT_MTL=use_materials,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment