Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 41f36ac

Browse files
apaszkeeric-wieser
andauthored
Update lib/mpl_toolkits/mplot3d/art3d.py
Co-Authored-By: Eric Wieser <[email protected]>
1 parent a1dff87 commit 41f36ac

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

lib/mpl_toolkits/mplot3d/art3d.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -615,11 +615,16 @@ def get_vector(self, segments3d):
615615
self._segments = segments3d
616616
else:
617617
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))
620621
for i, face in enumerate(segments3d):
621622
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)
623628

624629
def set_verts(self, verts, closed=True):
625630
"""Set 3D vertices."""

0 commit comments

Comments
 (0)