Skip to content

Refactor/put start and end on#4658

Open
GoThrones wants to merge 3 commits intoManimCommunity:mainfrom
GoThrones:refactor/put_start_and_end_on
Open

Refactor/put start and end on#4658
GoThrones wants to merge 3 commits intoManimCommunity:mainfrom
GoThrones:refactor/put_start_and_end_on

Conversation

@GoThrones
Copy link
Copy Markdown
Contributor

Overview: What does this pull request change?

This PR refactors the method "put_start_and_end_on" in mobject.py and opengl_mobject.py:

Replaces self.points = np.array(start) with self.shift(np.asarray(start) - current_start) in the case of a mobject whose start and end point are the same, in both mobject.py and opengl_mobject.py

Adds a warning that warns the user that the mobject which is calling this method is a loop, and it will be shifted.

Some variable names have been changed for better reading.

Motivation and Explanation: Why and how do your changes improve the library?

The put_start_and_end_on method in both mobject.py and opengl_mobject.py previously used self.points = np.array(start) when the mobject had its start and end as the same point. This collapsed all of the mobject's points into a single Point3D, destroying its geometry entirely. For example, calling this method on a Circle or Square would reduce it to a single point, making it cease to exist visually.
This PR fixes the issue by replacing that line with self.shift(np.asarray(start) - current_start), which simply repositions the mobject to the start point while fully preserving its geometry.

Reviewer Checklist

  • The PR title is descriptive enough for the changelog, and the PR is labeled correctly
  • If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
  • If applicable: newly added functions and classes are tested

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant