Skip to content

Commit 56af76a

Browse files
committed
Cleanup add_defined_tangents
1 parent 1fd4486 commit 56af76a

1 file changed

Lines changed: 16 additions & 22 deletions

File tree

  • io_scene_niftools/modules/nif_export/geometry/mesh

io_scene_niftools/modules/nif_export/geometry/mesh/__init__.py

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -760,40 +760,34 @@ def ensure_tri_modifier(self, b_obj):
760760
else:
761761
b_obj.modifiers.new('Triangulate', 'TRIANGULATE')
762762

763-
def add_defined_tangents(self, trishape, tangents, bitangents, as_extra_data):
763+
def add_defined_tangents(self, n_geom, tangents, bitangents, as_extra_data):
764764
# check if size of tangents and bitangents is equal to num_vertices
765-
if not (len(tangents) == len(bitangents) == trishape.data.num_vertices):
766-
raise NifError(f'Number of tangents or bitangents does not agree with number of vertices in {trishape.name}')
765+
if not (len(tangents) == len(bitangents) == n_geom.data.num_vertices):
766+
raise NifError(f'Number of tangents or bitangents does not agree with number of vertices in {n_geom.name}')
767767

768768
if as_extra_data:
769769
# if tangent space extra data already exists, use it
770770
# find possible extra data block
771-
for extra in trishape.get_extra_datas():
771+
extra_name = b'Tangent space (binormal & tangent vectors)'
772+
for extra in n_geom.get_extra_datas():
772773
if isinstance(extra, NifFormat.NiBinaryExtraData):
773-
if extra.name == b'Tangent space (binormal & tangent vectors)':
774+
if extra.name == extra_name:
774775
break
775776
else:
776-
extra = None
777-
if not extra:
778-
# otherwise, create a new block and link it
777+
# create a new block and link it
779778
extra = NifFormat.NiBinaryExtraData()
780-
extra.name = b'Tangent space (binormal & tangent vectors)'
781-
trishape.add_extra_data(extra)
782-
779+
extra.name = extra_name
780+
n_geom.add_extra_data(extra)
783781
# write the data
784782
extra.binary_data = np.concatenate((tangents, bitangents), axis=0).astype('<f').tobytes()
785783
else:
786784
# set tangent space flag
787-
trishape.data.extra_vectors_flags = 16
785+
n_geom.data.extra_vectors_flags = 16
788786
# XXX used to be 61440
789787
# XXX from Sid Meier's Railroad
790-
trishape.data.tangents.update_size()
791-
trishape.data.bitangents.update_size()
792-
for vec, data_tans in zip(tangents, trishape.data.tangents):
793-
data_tans.x = vec[0]
794-
data_tans.y = vec[1]
795-
data_tans.z = vec[2]
796-
for vec, data_bins in zip(bitangents, trishape.data.bitangents):
797-
data_bins.x = vec[0]
798-
data_bins.y = vec[1]
799-
data_bins.z = vec[2]
788+
n_geom.data.tangents.update_size()
789+
for n_v, b_v in zip(n_geom.data.tangents, tangents):
790+
n_v.x, n_v.y, n_v.z = b_v
791+
n_geom.data.bitangents.update_size()
792+
for n_v, b_v in zip(n_geom.data.bitangents, bitangents):
793+
n_v.x, n_v.y, n_v.z = b_v

0 commit comments

Comments
 (0)