File tree 1 file changed +8
-3
lines changed
1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -615,11 +615,16 @@ def get_vector(self, segments3d):
615
615
self ._segments = segments3d
616
616
else :
617
617
num_faces = len (segments3d )
618
- max_verts = max ((len (face ) for face in segments3d ), default = 0 )
619
- padded = np .full ((num_faces , max_verts , 3 ), np .nan )
618
+ num_verts = np .array ([len (face ) for face in segments3d ], dtype = np .intp )
619
+ max_verts = num_verts .max (initial = 0 )
620
+ padded = np .empty ((num_faces , max_verts , 3 ))
620
621
for i , face in enumerate (segments3d ):
621
622
padded [i , :len (face )] = face
622
- self ._segments = np .ma .masked_invalid (padded )
623
+ mask = np .arange (max_verts ) >= num_verts [:,None ]
624
+ mask = mask [..., None ] # add a component axis
625
+ # ma.array does not broadcast the mask for us
626
+ mask = np .broadcast_to (mask , padded .shape )
627
+ self ._segments = np .ma .array (padded , mask = mask )
623
628
624
629
def set_verts (self , verts , closed = True ):
625
630
"""Set 3D vertices."""
You can’t perform that action at this time.
0 commit comments