@@ -78,7 +78,9 @@ class MeshHandler:
78
78
version : Tuple [int , int , int , int ]
79
79
m_VertexCount : int = 0
80
80
m_Vertices : Optional [List [Tuple3f ]] = None
81
- m_Normals : Optional [List [Tuple3f ]] = None
81
+ # normals can be stored as Tuple4f,
82
+ # in such cases the 4th dimension is always 0 and can be discarded
83
+ m_Normals : Optional [Union [List [Tuple3f ], List [Tuple4f ]]] = None
82
84
m_Colors : Optional [List [Tuple4f ]] = None
83
85
m_UV0 : Optional [List [Tuple2f ]] = None
84
86
m_UV1 : Optional [List [Tuple2f ]] = None
@@ -88,7 +90,7 @@ class MeshHandler:
88
90
m_UV5 : Optional [List [Tuple2f ]] = None
89
91
m_UV6 : Optional [List [Tuple2f ]] = None
90
92
m_UV7 : Optional [List [Tuple2f ]] = None
91
- m_Tangents : Optional [List [float ]] = None
93
+ m_Tangents : Optional [List [Tuple4f ]] = None
92
94
m_BoneIndices : Optional [List [int ]] = None
93
95
m_BoneWeights : Optional [List [float ]] = None
94
96
m_IndexBuffer : Optional [List [int ]] = None
@@ -663,7 +665,7 @@ def get_triangles(self) -> List[List[Tuple[int, ...]]]:
663
665
): # TriangleStrip
664
666
# todo: use as_strided, then fix winding, finally remove degenerates
665
667
triIndex = 0
666
- triangles = [None ] * (indexCount - 2 ) # type: ignore
668
+ triangles = [None ] * (indexCount - 2 ) # type: ignore
667
669
668
670
for i in range (indexCount - 2 ):
669
671
a , b , c = self .m_IndexBuffer [firstIndex + i : firstIndex + i + 3 ]
@@ -683,10 +685,10 @@ def get_triangles(self) -> List[List[Tuple[int, ...]]]:
683
685
elif topology == MeshTopology .Quads :
684
686
# one quad is two triangles, so // 4 * 2 = // 2
685
687
# TODO: use as_strided
686
- triangles = [None ] * (indexCount // 2 ) # type: ignore
688
+ triangles = [None ] * (indexCount // 2 ) # type: ignore
687
689
triIndex = 0
688
- for i in range (firstIndex , firstIndex + indexCount ,4 ):
689
- a ,b , c , d = self .m_IndexBuffer [i : i + 4 ]
690
+ for i in range (firstIndex , firstIndex + indexCount , 4 ):
691
+ a , b , c , d = self .m_IndexBuffer [i : i + 4 ]
690
692
triangles [triIndex ] = a , b , c
691
693
triangles [triIndex + 1 ] = a , c , d
692
694
triIndex += 2
0 commit comments