Fix numpy reshape error in opengl_vectorized_mobject for transforming mobjects with different number of subpaths #3278
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview: What does this pull request change?
This is related to #2972.
opengl_vectorized_mobject
returns a python array rather than a numpy array of points if the subpath lengths are different which causes rendering errors with the OpenGL renderer. This wraps the null subpath array in a numpy array to fix the issue.Motivation and Explanation: Why and how do your changes improve the library?
Currently, if any mobject is transformed into another mobject using the OpenGL renderer, the OpenGL renderer crashes with
Using this animation as an example:
svg2
consists of two subpaths, butsvg1
has only one subpath, so the OpenGL renderer adds a null path to svg1 to match. However, that null path was made using a python array instead of a numpy array causing a crash. I expect this error to also exist with any mobjects which include subpaths, but I couldn't find any other concrete examples easily.Reviewer Checklist