Prepared new release, `v0.16.0` (#2863)

* bump version number

* changelog generation, first pass

* fixed label mismatches, changelog generation second pass

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* changelog generation, second pass

* changelog generation, third pass

* changelog generation, final pass

* updated i18n files

* update readyForTranslation

* cut down doc render time

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Benjamin Hackl 2022-07-14 08:22:45 +02:00 committed by GitHub
commit 7870407fdc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
163 changed files with 5049 additions and 2406 deletions

View file

@ -4,10 +4,10 @@ authors:
-
name: "The Manim Community Developers"
cff-version: "1.2.0"
date-released: 2022-04-25
date-released: 2022-07-13
license: MIT
message: "We acknowledge the importance of good software to support research, and we note that research becomes more valuable when it is communicated effectively. To demonstrate the value of Manim, we ask that you cite Manim in your work."
title: Manim Mathematical Animation Framework
url: "https://www.manim.community/"
version: "v0.15.2"
version: "v0.16.0"
...

View file

@ -255,7 +255,7 @@ msgid ":pr:`2415`: Removed instructions on using and installing Docker in README
msgstr ""
#: ../../source/changelog/0.14.0-changelog.rst:114
msgid ":pr:`2414`: Made improvements to the :doc:`configuration` tutorial"
msgid ":pr:`2414`: Made improvements to the :doc:`/guides/configuration` tutorial"
msgstr ""
#: ../../source/changelog/0.14.0-changelog.rst:117

View file

@ -0,0 +1,426 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/changelog/0.15.2-changelog.rst:3
msgid "v0.15.2"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:0
msgid "Date"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:5
msgid "April 25, 2022"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:8
msgid "Contributors"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:10
msgid "A total of 33 people contributed to this release. People with a '+' by their names authored a patch for the first time."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:14
msgid "Bailey Powers +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:15
#: ../../source/changelog/0.15.2-changelog.rst:44
msgid "Benjamin Hackl"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:16
msgid "Dan Walsh +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:17
msgid "Darigov Research"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:18
#: ../../source/changelog/0.15.2-changelog.rst:46
msgid "Darylgolden"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:19
msgid "David Millard +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:20
msgid "Hamidreza Hashemi +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:21
#: ../../source/changelog/0.15.2-changelog.rst:49
msgid "Jan-Hendrik Müller"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:22
#: ../../source/changelog/0.15.2-changelog.rst:50
msgid "Jason Villanueva"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:23
msgid "Jonathan Alpert +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:24
msgid "Joy Bhalla"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:25
msgid "Kian Cross +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:26
msgid "Luca +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:27
msgid "Mohsin Shaikh +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:28
#: ../../source/changelog/0.15.2-changelog.rst:53
msgid "Naveen M K"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:29
msgid "Prismo +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:30
#: ../../source/changelog/0.15.2-changelog.rst:55
msgid "Ryan McCauley"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:31
msgid "WillSoltas +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:32
#: ../../source/changelog/0.15.2-changelog.rst:56
msgid "ad_chaos"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:33
msgid "darkways +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:34
msgid "dawn*squirryl +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:35
#: ../../source/changelog/0.15.2-changelog.rst:59
msgid "icedcoffeeee"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:36
#: ../../source/changelog/0.15.2-changelog.rst:60
msgid "peaceheis"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:37
msgid "sparshg"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:38
msgid "trickypr +"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:41
msgid "The patches included in this release have been reviewed by the following contributors."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:45
msgid "Dan Walsh"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:47
msgid "GameDungeon"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:48
msgid "Hugues Devimeux"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:51
msgid "Jonathan Alpert"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:52
msgid "Luca"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:54
msgid "Prismo"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:57
msgid "darkways"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:58
msgid "hickmott99"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:63
msgid "Pull requests merged"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:65
msgid "A total of 39 pull requests were merged for this release."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:68
msgid "New features"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:74
msgid ":pr:`1975`: Improved CLI help page styling"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:71
msgid "Updates dependencies on Click and Cloup libraries for CLI help page styling."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:72
msgid "Removed the dependency on click-default-group."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:73
msgid "Added ``no_args_is_help`` parameter for ``manim render`` to allow easy access to help page."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:74
msgid "Added note to ``manim`` help page epilog on how to access other command help pages."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:77
msgid ":pr:`2404`: Add :class:`.SpiralIn` Animation"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:77
msgid "Make :class:`.ManimBanner` to use :class:`.SpiralIn`."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:79
msgid ":pr:`2534`: Implement :class:`~.OpenGLImageMobject`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:82
msgid ":pr:`2684`: Created a more accessible way to create Angles with line.py angle function - :meth:`.Angle.from_three_points`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:86
msgid "Enhancements"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:88
msgid ":pr:`2062`: Reuse shader wrappers and shader data"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:92
msgid ":pr:`2642`: Migrated ``file_ops.py`` and ``scene_file_writer.py`` from os.path to Pathlib"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:92
msgid "In ``file_ops.py`` and ``scene_file_writer.py``: Uses of str type file names have been mostly (see further information) converted to pathlib's Path objects. Uses of ``os.path`` methods have been converted to equivalent pathlib methods."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:94
msgid ":pr:`2655`: Fix :func:`.assert_is_mobject_method` when using OpenGL"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:97
msgid ":pr:`2665`: Improved handling of attributes when using the ``.animate`` syntax"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:102
msgid ":pr:`2674`: Document and type ``simple_functions.py``"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:101
msgid "Add documentation for ``simple_functions.py``."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:102
msgid "Small additions with some extra clarity for these functions."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:105
msgid ":pr:`2693`: Allow using :meth:`.MovingCamera.auto_zoom` without animation"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:105
msgid "Allows auto zooming camera without having to play an animation by passing an ``animation=False`` argument"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:108
msgid "Fixed bugs"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:110
msgid ":pr:`2546`: Fixed a file logging bug and some maintenance"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:116
msgid ":pr:`2597`: Fix Bug in :class:`.Uncreate` with ``rate_func`` via introducing new parameter ``reversed`` to :class:`.Animation`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:114
msgid "Refractor the :class:`.Uncreate`. The new implementation uses a flag member ``reversed``. Set it to ``True`` and its superclass handles the reverse."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:115
msgid "Introduce a bool parameter ``reversed`` to :class:`.Animation`. It decides whether the animation needs to be played backwards. Default to be False."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:116
msgid "Add conditional branches in :meth:`.Animation.get_sub_alpha`. If the parameter ``reversed`` is True, it would set ``rate_func(t)`` to ``rate_func(1 - t)``."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:118
msgid ":pr:`2613`: Fixed bug in :meth:`.Circle.point_at_angle` when the angle is not in the interval :math:`[0, 2\\pi]`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:121
msgid ":pr:`2634`: Fix background lines drawn twice in :class:`.NumberPlane`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:124
msgid ":pr:`2648`: Handle user-defined centers for Wiggle animation"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:128
msgid ":pr:`2658`: Fix arguments of overridden ``set_style`` for :class:`.BackgroundRectangle`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:128
msgid "Using :class:`.Write` animation on a :class:`.Text` object with ``.add_background_rectangle()`` applied no longer generates a ``TypeError``."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:130
msgid ":pr:`2668`: (Re)set background color of :class:`.OpenGLRenderer` when initializing scene"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:133
msgid ":pr:`2676`: Fixed propagation of custom attributes in animations for the OpenGL renderer"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:136
msgid ":pr:`2688`: Fixed two minor issues of :class:`.SpiralIn` and :class:`.ManimBanner`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:140
msgid "Documentation-related changes"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:142
msgid ":pr:`2609`: Copyedit troubleshooting.rst"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:145
msgid ":pr:`2610`: Add example PolygonOnAxes"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:148
msgid ":pr:`2617`: Re-added :mod:`.value_tracker` documentation"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:151
msgid ":pr:`2619`: Improve Example for arrange_in_grid"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:154
msgid ":pr:`2620`: Fixed typo in :meth:`.Animation.is_introducer`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:158
msgid ":pr:`2640`: Copyedited Documentation"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:158
msgid "Reviewed ``tutorials/configurations.rst``. Edited simple mistakes such as Manim not being capitalized and commas."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:160
msgid ":pr:`2649`: Document and type utils/iterables.py"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:163
msgid ":pr:`2651`: Update copyright year in documentation to 2020-2022"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:165
msgid ":pr:`2663`: Added documentation for scene updater functions"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:168
msgid ":pr:`2686`: Add instructions to install extra dependencies with poetry"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:172
msgid "Changes to our development infrastructure"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:174
msgid ":pr:`2561`: Run tests on Linux-aarch64"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:177
msgid ":pr:`2656`: Fixed incompatibility with black version"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:181
msgid "Code quality improvements and similar refactors"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:184
msgid ":pr:`2630`: Remove WebGL renderer"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:184
msgid "The WebGL renderer is broken and unmaintained. The support for it in Manim is removed."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:186
msgid ":pr:`2652`: Update ``cloup`` version to 0.13.0 from 0.7.0"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:189
msgid ":pr:`2678`: Require ``backports-cached-property`` only for Python < 3.8"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:193
msgid ":pr:`2685`: Migrate from ``os.path`` to ``pathlib`` in testing scripts"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:193
msgid "This pull request changes a number of instances of ``os.path`` to Pathlib objects and functions. In addition, this PR modifies the SVGMobject constructor to accept both a Pathlib object or a string variable pathname its constructor."
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:195
msgid ":pr:`2691`: Removed :class:`CameraFrame`"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:198
msgid ":pr:`2696`: Made changelog generation run in parallel plus further improvements to ``scripts/dev_changelog.py``"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:201
msgid ":pr:`2697`: Sort PRs by number in changelog sections before writing"
msgstr ""
#: ../../source/changelog/0.15.2-changelog.rst:205
msgid "New releases"
msgstr ""

View file

@ -0,0 +1,501 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/changelog/0.16.0-changelog.rst:3
msgid "v0.16.0"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:0
msgid "Date"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:5
msgid "July 13, 2022"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:8
msgid "Contributors"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:10
msgid "A total of 44 people contributed to this release. People with a '+' by their names authored a patch for the first time."
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:14
#: ../../source/changelog/0.16.0-changelog.rst:51
msgid "Alex Lembcke"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:15
msgid "Baroudi Aymen +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:16
#: ../../source/changelog/0.16.0-changelog.rst:52
msgid "Benjamin Hackl"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:17
msgid "Charalampos Georgiou +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:18
msgid "Cindy Park +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:19
msgid "Ejar +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:20
msgid "Francesco Frassinelli +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:21
msgid "Francisco Manríquez Novoa +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:22
msgid "Jacob Evan Shreve +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:23
msgid "Jaime Santos +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:24
#: ../../source/changelog/0.16.0-changelog.rst:58
msgid "Jonathan Alpert"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:25
msgid "Joshua Mankelow +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:26
msgid "Kevin Lubick +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:27
#: ../../source/changelog/0.16.0-changelog.rst:60
msgid "Laith Bahodi"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:28
msgid "Lingren Kong +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:29
msgid "Logen +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:30
#: ../../source/changelog/0.16.0-changelog.rst:61
msgid "Naveen M K"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:31
msgid "Noam Zaks"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:32
msgid "Pedro Lamkowski +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:33
#: ../../source/changelog/0.16.0-changelog.rst:64
msgid "Raghav Goel"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:34
msgid "Simeon Widdis"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:35
#: ../../source/changelog/0.16.0-changelog.rst:66
msgid "Sparsh Goenka"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:36
msgid "TornaxO7 +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:37
msgid "Tristan Schulz +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:38
msgid "WillSoltas"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:39
#: ../../source/changelog/0.16.0-changelog.rst:69
msgid "ad_chaos"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:40
msgid "conor-oneill-2 +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:41
msgid "fcrozatier +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:42
msgid "mooncaker816 +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:43
msgid "niklebedenko +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:44
msgid "nyabkun +"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:45
msgid "quark67"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:48
msgid "The patches included in this release have been reviewed by the following contributors."
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:53
msgid "Darylgolden"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:54
msgid "Francesco Frassinelli"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:55
msgid "Francisco Manríquez Novoa"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:56
msgid "Gianluca Gippetto"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:57
msgid "Jan-Hendrik Müller"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:59
msgid "Kevin Lubick"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:62
msgid "Pedro Lamkowski"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:63
msgid "Philipp Imhof"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:65
msgid "Ryan McCauley"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:67
msgid "TornaxO7"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:68
msgid "Tristan Schulz"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:70
msgid "hickmott99"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:73
msgid "Pull requests merged"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:75
msgid "A total of 56 pull requests were merged for this release."
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:78
msgid "Highlights"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:82
msgid ":pr:`2550`: New thematic guide: a deep dive into the internals of the library"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:81
msgid "This new :doc:`thematic guide </guides/deep_dive>` aims to be a comprehensive walkthrough describing all the things that Manim does when you run it to produce a video."
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:84
msgid ":pr:`2732`: Improved overall structure of deployed documentation; added a dedicated :doc:`FAQ section </faq/index>`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:90
msgid ":pr:`2749`: Added :class:`.ChangeSpeed`, an animation wrapper that allows to smoothly change the speed at which an animation is played"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:88
msgid "The speed of any animation can be changed by wrapping the animation with :class:`.ChangeSpeed` and passing a dictionary as ``speedinfo`` whose keys are the relative animation run time stamps and whose values are the absolute speed factors; e.g., ``{0.5: 2, 0.75: 0.25}`` smoothly speeds up the animation by a factor of 2 once it has been completed to 50%, and then it is smoothly slowed down to 1/4 of the default run speed after 75% of the animation are completed. The ``run_time`` of the animation will be adjusted to match the changed play speed."
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:90
msgid "It is also possible to add time-based updaters that respect the change in speed, use the auxiliary :meth:`.ChangeSpeed.add_updater` method to do so."
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:93
msgid "New features"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:95
msgid ":pr:`2667`: Made FFmpeg executable path configurable"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:98
msgid ":pr:`2739`: Added vectorized plotting functionality via keyword argument ``use_vectorized`` to improve performance"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:102
msgid "Enhancements"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:104
msgid ":pr:`2186`: Enabled filling color by value for :class:`.OpenGLSurface`, replaced ``colors`` keyword argument of :meth:`.Surface.set_fill_by_value` with ``colorscale``"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:107
msgid ":pr:`2288`: Added warning when attempting to add same mobject as child twice"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:112
msgid ":pr:`2707`: Fixed missing ``get_nth_curve_length_pieces`` method of :class:`.OpenGLVMobject`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:111
msgid "Removed duplicate definition of ``get_curve_functions_with_lengths`` in ``OpenGLVMobject``"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:112
msgid "Added definition of ``get_nth_curve_length_pieces`` to ``OpenGLVMobject``"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:114
msgid ":pr:`2709`: Improved the look of the brackets of :class:`.Matrix`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:117
msgid ":pr:`2714`: Fixed :meth:`.OpenGLVMobject.pointwise_become_partial` to improve stroke rendering"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:120
msgid ":pr:`2727`: Slight performance improvement for :class:`.ArrowVectorField` and Bézier curve computation"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:123
msgid ":pr:`2728`: Added :meth:`.VectorField.fit_to_coordinate_system` to fit a vector field to a given coordinate system"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:126
msgid ":pr:`2730`: Added note to let users find documentation of default CLI subcommand easier"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:129
msgid ":pr:`2746`: Installed ghostscript in the docker image"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:132
msgid ":pr:`2841`: Added :func:`.split_quadratic_bezier` and :func:`.subdivide_quadratic_bezier`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:135
msgid ":pr:`2842`: CLI: Moved functionality from ``manim new`` to ``manim init`` and added deprecation warning for ``manim new``"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:138
msgid ":pr:`2866`: Reorganize test files to match library module structure"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:142
msgid "Fixed bugs"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:144
msgid ":pr:`2567`: Use tempconfig for every scene render"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:147
msgid ":pr:`2638`: Fixed :meth:`BarChart.change_bar_values` not updating when height is 0"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:150
msgid ":pr:`2661`: Fixed tip resize functionality for :class:`.Axes` to match documentation"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:153
msgid ":pr:`2703`: Default to utf-8 when reading files in :class:`.Code`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:156
msgid ":pr:`2721`: Fixed bad text slicing for lines in :class:`.Paragraph`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:159
msgid ":pr:`2725`: Fixed wrong indentation in :class:`.Code`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:162
msgid ":pr:`2734`: Fixed OpenGL segfaults when running :meth:`.Scene.play` or :meth:`.Scene.wait` in interactive mode"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:165
msgid ":pr:`2753`: Fixed multiplatform builds for docker images in pipeline"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:168
msgid ":pr:`2757`: Added missing ``__init__.py`` file in :mod:`.docbuild` module"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:171
msgid ":pr:`2770`: Fixed bug in :meth:`.VMobject.proportion_from_point` that caused proportions greater than 1 to be returned"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:174
msgid ":pr:`2826`: Fixed leaked mobjects coming from :class:`.TransformMatchingAbstractBase`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:177
msgid ":pr:`2870`: Fixed issue with ``manim init scene SCENE_NAME filename.py`` and removed necessity of ``main.py`` to be present in working directory"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:181
msgid "Documentation-related changes"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:183
msgid ":pr:`2704`: Updated URL to Pango Markup formatting page"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:186
msgid ":pr:`2716`: Improved the order of the reference manuals"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:189
msgid ":pr:`2720`: Fixed typo in docstring of :class:`.Angle`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:192
msgid ":pr:`2722`: Fixed typos in docstrings of classes in :mod:`.mobject.table`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:195
msgid ":pr:`2726`: Edited note on :class:`.NumberPlane` length and added another example"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:198
msgid ":pr:`2740`: Fixed documentation of :meth:`.Cylinder.get_direction`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:201
msgid ":pr:`2755`: Fixed docstring of :meth:`.VMobject.get_end_anchors`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:204
msgid ":pr:`2760`: Removed ``cmake`` from the MacOS installation section"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:207
msgid ":pr:`2767`: Added more questions and answers to FAQ section, new :doc:`OpenGL FAQ </faq/opengl>`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:210
msgid ":pr:`2771`: Added documentation and testing for ``path_func`` keyword argument of :class:`.Transform`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:213
msgid ":pr:`2828`: Removed suggestion issue template, added FAQ answer regarding proposing new features"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:216
msgid ":pr:`2849`: Added example for ``path_arc`` keyword argument of :class:`.Transform`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:219
msgid ":pr:`2851`: Added an example on constructing a (neural) network using a partite :class:`.Graph`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:222
msgid ":pr:`2855`: Added implicit ``docker.io/`` URL base in reference to docker images"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:225
msgid ":pr:`2861`: Added docstring for :meth:`.CoordinateSystem.plot_parametric_curve`"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:229
msgid "Changes concerning the testing system"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:231
msgid ":pr:`2743`: Replaced ``assert`` statements with with assertion functions from ``np.testing``"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:235
msgid "Changes to our development infrastructure"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:237
msgid ":pr:`2700`: CI: updated Python versions"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:240
msgid ":pr:`2701`: CI: added a workflow to publish docker image after releases and commits to main branch"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:244
msgid "Code quality improvements and similar refactors"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:246
msgid ":pr:`2680`: Increased minimum required version of ``numpy`` to 1.19"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:249
msgid ":pr:`2687`: Migrated from ``os.path`` to ``pathlib`` in :class:`.SVGMobject` and other locations"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:252
msgid ":pr:`2715`: Updated deprecated ``pillow`` constants"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:255
msgid ":pr:`2735`: Bump pyjwt from 2.3.0 to 2.4.0"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:258
msgid ":pr:`2748`: Bump pillow from 9.1.0 to 9.1.1"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:261
msgid ":pr:`2751`: Fixed flake C417 and improved a comment"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:264
msgid ":pr:`2825`: Bump notebook from 6.4.11 to 6.4.12"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:267
msgid ":pr:`2864`: Updated lockfile"
msgstr ""
#: ../../source/changelog/0.16.0-changelog.rst:271
msgid "New releases"
msgstr ""

View file

@ -11,7 +11,7 @@ msgid "Code of Conduct"
msgstr ""
#: ../../source/conduct.md:7
msgid "TL;DR Be excellent to each other; we're a community after all. If you run into issues with others in our community, please contact a Manim Community Dev, or Moderator."
msgid "TL;DR Be excellent to each other; we're a community after all. If you run into issues with others in our community, please [contact](https://www.manim.community/discord/) a Manim Community Dev, or Moderator."
msgstr ""
#: ../../source/conduct.md:9
@ -31,31 +31,31 @@ msgid "Members of Manim Community are respectful, open, and considerate. Behavio
msgstr ""
#: ../../source/conduct.md:19
msgid "Being respectful. Respectful of others, their positions, experiences, viewpoints, skills, commitments, time, and efforts."
msgid "**Being respectful.** Respectful of others, their positions, experiences, viewpoints, skills, commitments, time, and efforts."
msgstr ""
#: ../../source/conduct.md:21
msgid "Being open. Open to collaboration, whether it's on problems, Pull Requests, issues, or otherwise."
msgid "**Being open.** Open to collaboration, whether it's on problems, Pull Requests, issues, or otherwise."
msgstr ""
#: ../../source/conduct.md:23
msgid "Being considerate. Considerate of their peers -- other Manim users and developers."
msgid "**Being considerate.** Considerate of their peers -- other Manim users and developers."
msgstr ""
#: ../../source/conduct.md:25
msgid "Focusing on what is best for the community. We're respectful of the processes set forth in the community, and we work within them."
msgid "**Focusing on what is best for the community.** We're respectful of the processes set forth in the community, and we work within them."
msgstr ""
#: ../../source/conduct.md:27
msgid "Showing empathy towards other community members. We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views."
msgid "**Showing empathy towards other community members.** We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views."
msgstr ""
#: ../../source/conduct.md:29
msgid "Gracefully accepting constructive criticism. When we disagree, we are courteous in raising our issues."
msgid "**Gracefully accepting constructive criticism.** When we disagree, we are courteous in raising our issues."
msgstr ""
#: ../../source/conduct.md:31
msgid "Using welcoming and inclusive language. We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference."
msgid "**Using welcoming and inclusive language.** We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference."
msgstr ""
#: ../../source/conduct.md:35
@ -147,19 +147,19 @@ msgid "This Code of Conduct applies to the following online spaces:"
msgstr ""
#: ../../source/conduct.md:69
msgid "The ManimCommunity GitHub Organization and all of its repositories"
msgid "The [ManimCommunity GitHub Organization](https://github.com/ManimCommunity) and all of its repositories"
msgstr ""
#: ../../source/conduct.md:71
msgid "The Manim Discord"
msgid "The Manim [Discord](https://www.manim.community/discord/)"
msgstr ""
#: ../../source/conduct.md:73
msgid "The Manim Reddit"
msgid "The Manim [Reddit](https://www.reddit.com/r/manim/)"
msgstr ""
#: ../../source/conduct.md:75
msgid "The Manim Twitter"
msgid "The Manim [Twitter](https://twitter.com/manim\\_community/)"
msgstr ""
#: ../../source/conduct.md:77
@ -211,7 +211,7 @@ msgid "Contact Information"
msgstr ""
#: ../../source/conduct.md:107
msgid "If you believe someone is violating the code of conduct, or have any other concerns, please contact a Manim Community Dev, or Moderator immediately. They can be reached on Manim's Community Discord."
msgid "If you believe someone is violating the code of conduct, or have any other concerns, please contact a Manim Community Dev, or Moderator immediately. They can be reached on Manim's Community [Discord](https://www.manim.community/discord/)."
msgstr ""
#: ../../source/conduct.md:117
@ -323,11 +323,11 @@ msgid "Jurisdiction"
msgstr ""
#: ../../source/conduct.md:165
msgid "Is this a Code of Conduct violation? Is this behavior on our list of inappropriate behavior? Is it borderline inappropriate behavior? Does it violate our community norms?"
msgid "*Is this a Code of Conduct violation?* Is this behavior on our list of inappropriate behavior? Is it borderline inappropriate behavior? Does it violate our community norms?"
msgstr ""
#: ../../source/conduct.md:166
msgid "Did this occur in a space that is within our Code of Conduct's scope? If the incident occurred outside the community, but a community member's mental health or physical safety may be negatively impacted if no action is taken, the incident may be in scope. Private conversations in community spaces are also in scope."
msgid "*Did this occur in a space that is within our Code of Conduct's scope?* If the incident occurred outside the community, but a community member's mental health or physical safety may be negatively impacted if no action is taken, the incident may be in scope. Private conversations in community spaces are also in scope."
msgstr ""
#: ../../source/conduct.md:167
@ -335,15 +335,15 @@ msgid "Impact"
msgstr ""
#: ../../source/conduct.md:169
msgid "Did this incident occur in a private conversation or a public space? Incidents that all community members can see will have a more negative impact."
msgid "*Did this incident occur in a private conversation or a public space?* Incidents that all community members can see will have a more negative impact."
msgstr ""
#: ../../source/conduct.md:170
msgid "Does this behavior negatively impact a marginalized group in our community? Is the reporter a person from a marginalized group in our community? How is the reporter being negatively impacted by the reported person's behavior? Are members of the marginalized group likely to disengage with the community if no action was taken on this report?"
msgid "*Does this behavior negatively impact a marginalized group in our community?* Is the reporter a person from a marginalized group in our community? How is the reporter being negatively impacted by the reported person's behavior? Are members of the marginalized group likely to disengage with the community if no action was taken on this report?"
msgstr ""
#: ../../source/conduct.md:171
msgid "Does this incident involve a community leader? Community members often look up to community leaders to set the standard of acceptable behavior"
msgid "*Does this incident involve a community leader?* Community members often look up to community leaders to set the standard of acceptable behavior"
msgstr ""
#: ../../source/conduct.md:172
@ -351,15 +351,15 @@ msgid "Risk"
msgstr ""
#: ../../source/conduct.md:174
msgid "Does this incident include sexual harassment?"
msgid "*Does this incident include sexual harassment?*"
msgstr ""
#: ../../source/conduct.md:175
msgid "Does this pose a safety risk? Does the behavior put a person's physical safety at risk? Will this incident severely negatively impact someone's mental health?"
msgid "*Does this pose a safety risk?* Does the behavior put a person's physical safety at risk? Will this incident severely negatively impact someone's mental health?"
msgstr ""
#: ../../source/conduct.md:176
msgid "Is there a risk of this behavior being repeated? Does the reported person understand why their behavior was inappropriate? Is there an established pattern of behavior from past reports?"
msgid "*Is there a risk of this behavior being repeated?* Does the reported person understand why their behavior was inappropriate? Is there an established pattern of behavior from past reports?"
msgstr ""
#: ../../source/conduct.md:179
@ -479,15 +479,15 @@ msgid "When discussing a change to the Manim Community code of conduct or enforc
msgstr ""
#: ../../source/conduct.md:241
msgid "Brainstorm options. Team members should discuss any relevant context and brainstorm a set of possible options. It is important to provide constructive feedback without getting side-tracked from the main question."
msgid "**Brainstorm options.** Team members should discuss any relevant context and brainstorm a set of possible options. It is important to provide constructive feedback without getting side-tracked from the main question."
msgstr ""
#: ../../source/conduct.md:242
msgid "Vote. Proposed changes to the code of conduct will be decided by a two-thirds majority of all voting members of the Code of Conduct team. Team members are listed in the charter. Currently active voting members are listed in the following section."
msgid "**Vote.** Proposed changes to the code of conduct will be decided by a two-thirds majority of all voting members of the Code of Conduct team. Team members are listed in the charter. Currently active voting members are listed in the following section."
msgstr ""
#: ../../source/conduct.md:243
msgid "Board Vote. Once a working draft is in place for the Code of Conduct and procedures, the Code of Conduct team shall provide the Manim Community Moderators with a draft of the changes. The Manim Community Moderators will vote on the changes at a board meeting."
msgid "**Board Vote.** Once a working draft is in place for the Code of Conduct and procedures, the Code of Conduct team shall provide the Manim Community Moderators with a draft of the changes. The Manim Community Moderators will vote on the changes at a board meeting."
msgstr ""
#: ../../source/conduct.md:246
@ -503,7 +503,7 @@ msgid "License"
msgstr ""
#: ../../source/conduct.md:254
msgid "This Code of Conduct is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License."
msgid "This Code of Conduct is licensed under the [Creative Commons Attribution-ShareAlike 3.0 Unported License](https://creativecommons.org/licenses/by-sa/3.0/)."
msgstr ""
#: ../../source/conduct.md:258

View file

@ -11,7 +11,7 @@ msgid "Contributing"
msgstr ""
#: ../../source/contributing.rst:5
msgid "Manim is currently undergoing a major refactor. In general, contributions implementing new features will not be accepted in this period. Other contributions unrelated to cleaning up the codebase may also take a longer period of time to be reviewed. This guide may quickly become outdated quickly; we highly recommend joining our `Discord server <https://www.manim.community/discord/>`_ to discuss any potential contributions and keep up to date with the latest developments."
msgid "Manim is currently undergoing a major refactor. In general, contributions implementing new features will not be accepted in this period. Other contributions unrelated to cleaning up the codebase may also take a longer period of time to be reviewed. This guide may quickly become outdated quickly; we highly recommend joining our `Discord server <https://www.manim.community/discord/>`__ to discuss any potential contributions and keep up to date with the latest developments."
msgstr ""
#: ../../source/contributing.rst:12
@ -50,7 +50,11 @@ msgstr ""
msgid "Translating documentation and docstrings"
msgstr ""
#: ../../source/contributing.rst:31
#: ../../source/contributing.rst:30
msgid "To get an overview of what our community is currently working on, check out `our development project board <https://github.com/orgs/ManimCommunity/projects/7/views/1>`__."
msgstr ""
#: ../../source/contributing.rst:34
msgid "Please ensure that you are reading the latest version of this guide by ensuring that \"latest\" is selected in the version switcher."
msgstr ""

View file

@ -75,202 +75,202 @@ msgid "If you choose to use Poetry as well, follow `Poetry's installation guidel
msgstr ""
#: ../../source/contributing/development.rst:69
msgid "In case you want to install extra dependencies that are defined in the ``[tool.poetry.extras]`` section of ``pyproject.toml``, this can be done by passing the ``-E`` flag, for example ``poetry install -E jupyterlab -E gui``."
msgstr ""
#: ../../source/contributing/development.rst:73
msgid "In case you decided against Poetry, you can install Manim via pip by running ``python3 -m pip install .``. Note that due to our development infrastructure being based on Poetry, we currently do not support editable installs via ``pip``, so you will have to re-run this command every time you make changes to the source code."
msgstr ""
#: ../../source/contributing/development.rst:78
#: ../../source/contributing/development.rst:82
msgid "The following steps assume that you chose to install and work with Poetry."
msgstr ""
#: ../../source/contributing/development.rst:81
#: ../../source/contributing/development.rst:85
msgid "Install Pre-Commit:"
msgstr ""
#: ../../source/contributing/development.rst:87
#: ../../source/contributing/development.rst:91
msgid "This will ensure during development that each of your commits is properly formatted against our linter and formatters, ``black``, ``flake8``, ``isort`` and ``codespell``."
msgstr ""
#: ../../source/contributing/development.rst:91
#: ../../source/contributing/development.rst:95
msgid "You are now ready to work on manim!"
msgstr ""
#: ../../source/contributing/development.rst:94
#: ../../source/contributing/development.rst:98
msgid "Develop your contribution"
msgstr ""
#: ../../source/contributing/development.rst:96
#: ../../source/contributing/development.rst:100
msgid "Checkout your local repository's main branch and pull the latest changes from ManimCommunity, ``upstream``, into your local repository:"
msgstr ""
#: ../../source/contributing/development.rst:104
#: ../../source/contributing/development.rst:108
msgid "Create a branch for the changes you want to work on rather than working off of your local main branch:"
msgstr ""
#: ../../source/contributing/development.rst:111
#: ../../source/contributing/development.rst:115
msgid "This ensures you can easily update your local repository's main with the first step and switch branches to work on multiple features."
msgstr ""
#: ../../source/contributing/development.rst:114
#: ../../source/contributing/development.rst:118
msgid "Write some awesome code!"
msgstr ""
#: ../../source/contributing/development.rst:116
#: ../../source/contributing/development.rst:120
msgid "You're ready to make changes in your local repository's branch. You can add local files you've changed within the current directory with ``git add .``, or add specific files with"
msgstr ""
#: ../../source/contributing/development.rst:124
#: ../../source/contributing/development.rst:128
msgid "and commit these changes to your local history with ``git commit``. If you have installed pre-commit, your commit will succeed only if none of the hooks fail."
msgstr ""
#: ../../source/contributing/development.rst:130
#: ../../source/contributing/development.rst:134
msgid "When crafting commit messages, it is highly recommended that you adhere to `these guidelines <https://www.conventionalcommits.org/en/v1.0.0/>`_."
msgstr ""
#: ../../source/contributing/development.rst:133
#: ../../source/contributing/development.rst:137
msgid "Add new or update existing tests."
msgstr ""
#: ../../source/contributing/development.rst:135
#: ../../source/contributing/development.rst:139
msgid "Depending on your changes, you may need to update or add new tests. For new features, it is required that you include tests with your PR. Details of our testing system are explained in the :doc:`testing guide <testing>`."
msgstr ""
#: ../../source/contributing/development.rst:140
#: ../../source/contributing/development.rst:144
msgid "Update docstrings and documentation:"
msgstr ""
#: ../../source/contributing/development.rst:142
#: ../../source/contributing/development.rst:146
msgid "Update the docstrings (the text in triple quotation marks) of any functions or classes you change and include them with any new functions you add. See the :doc:`documentation guide <docstrings>` for more information about how we prefer our code to be documented. The content of the docstrings will be rendered in the :doc:`reference manual <../reference>`."
msgstr ""
#: ../../source/contributing/development.rst:150
#: ../../source/contributing/development.rst:154
msgid "Use the :mod:`manim directive for Sphinx <manim.utils.docbuild.manim_directive>` to add examples to the documentation!"
msgstr ""
#: ../../source/contributing/development.rst:156:<autosummary>:1
msgid "A directive for including Manim videos in a Sphinx document"
msgstr ""
#: ../../source/contributing/development.rst:158
#: ../../source/contributing/development.rst:157
msgid "As far as development on your local machine goes, these are the main steps you should follow."
msgstr ""
#: ../../source/contributing/development.rst:162
#: ../../source/contributing/development.rst:161
msgid "Polishing Changes and Submitting a Pull Request"
msgstr ""
#: ../../source/contributing/development.rst:164
#: ../../source/contributing/development.rst:163
msgid "As soon as you are ready to share your local changes with the community so that they can be discussed, go through the following steps to open a pull request. A pull request signifies to the ManimCommunity organization, \"Here are some changes I wrote; I think it's worthwhile for you to maintain them.\""
msgstr ""
#: ../../source/contributing/development.rst:172
#: ../../source/contributing/development.rst:171
msgid "You do not need to have everything (code/documentation/tests) complete to open a pull request (PR). If the PR is still under development, please mark it as a draft. Community developers will still be able to review the changes, discuss yet-to-be-implemented changes, and offer advice; however, the more complete your PR, the quicker it will be merged."
msgstr ""
#: ../../source/contributing/development.rst:178
#: ../../source/contributing/development.rst:177
msgid "Update your fork on GitHub to reflect your local changes:"
msgstr ""
#: ../../source/contributing/development.rst:184
#: ../../source/contributing/development.rst:183
msgid "Doing so creates a new branch on your remote fork, ``origin``, with the contents of your local repository on GitHub. In subsequent pushes, this local branch will track the branch ``origin`` and ``git push`` is enough."
msgstr ""
#: ../../source/contributing/development.rst:189
#: ../../source/contributing/development.rst:188
msgid "Make a pull request (PR) on GitHub."
msgstr ""
#: ../../source/contributing/development.rst:191
#: ../../source/contributing/development.rst:190
msgid "In order to make the ManimCommunity development team aware of your changes, you can make a PR to the ManimCommunity repository from your fork."
msgstr ""
#: ../../source/contributing/development.rst:196
#: ../../source/contributing/development.rst:195
msgid "Make sure to select ``ManimCommunity/manim`` instead of ``3b1b/manim`` as the base repository!"
msgstr ""
#: ../../source/contributing/development.rst:199
#: ../../source/contributing/development.rst:198
msgid "Choose the branch from your fork as the head repository - see the screenshot below."
msgstr ""
#: ../../source/contributing/development.rst:205
#: ../../source/contributing/development.rst:204
msgid "Please make sure you follow the template (this is the default text you are shown when first opening the 'New Pull Request' page)."
msgstr ""
#: ../../source/contributing/development.rst:209
#: ../../source/contributing/development.rst:208
msgid "Your changes are eligible to be merged if:"
msgstr ""
#: ../../source/contributing/development.rst:211
#: ../../source/contributing/development.rst:210
msgid "there are no merge conflicts"
msgstr ""
#: ../../source/contributing/development.rst:212
#: ../../source/contributing/development.rst:211
msgid "the tests in our pipeline pass"
msgstr ""
#: ../../source/contributing/development.rst:213
#: ../../source/contributing/development.rst:212
msgid "at least one (two for more complex changes) Community Developer approves the changes"
msgstr ""
#: ../../source/contributing/development.rst:215
#: ../../source/contributing/development.rst:214
msgid "You can check for merge conflicts between the current upstream/main and your branch by executing ``git pull upstream main`` locally. If this generates any merge conflicts, you need to resolve them and push an updated version of the branch to your fork of the repository."
msgstr ""
#: ../../source/contributing/development.rst:220
#: ../../source/contributing/development.rst:219
msgid "Our pipeline consists of a series of different tests that ensure that manim still works as intended and that the code you added sticks to our coding conventions."
msgstr ""
#: ../../source/contributing/development.rst:224
#: ../../source/contributing/development.rst:223
msgid "**Code style**: We use the code style imposed by `Black <https://black.readthedocs.io/en/stable/>`_, `isort <https://pycqa.github.io/isort/>`_ and `flake8 <https://flake8.pycqa.org/en/latest/>`_. The GitHub pipeline makes sure that the (Python) files changed in your pull request also adhere to this code style. If this step of the pipeline fails, fix your code formatting automatically by running ``black <file or directory>`` and ``isort <file or directory>``. To fix code style problems, run ``flake8 <file or directory>`` for a style report, and then fix the problems manually that were detected by ``flake8``."
msgstr ""
#: ../../source/contributing/development.rst:233
#: ../../source/contributing/development.rst:232
msgid "**Tests**: The pipeline runs manim's test suite on different operating systems (the latest versions of Ubuntu, MacOS, and Windows) for different versions of Python. The test suite consists of two different kinds of tests: integration tests and doctests. You can run them locally by executing ``poetry run pytest`` and ``poetry run pytest --doctest-modules manim``, respectively, from the root directory of your cloned fork."
msgstr ""
#: ../../source/contributing/development.rst:240
#: ../../source/contributing/development.rst:239
msgid "**Documentation**: We also build a version of the documentation corresponding to your pull request. Make sure not to introduce any Sphinx errors, and have a look at the built HTML files to see whether the formatting of the documentation you added looks as you intended. You can build the documentation locally by running ``make html`` from the ``docs`` directory. Since the inheritance diagrams require you to have `Graphviz <https://graphviz.org/>`_ installed locally."
msgstr ""
#: ../../source/contributing/development.rst:247
#: ../../source/contributing/development.rst:246
msgid "Finally, if the pipeline passes and you are satisfied with your changes: wait for feedback and iterate over any requested changes. You will likely be asked to edit or modify your PR in one way or another during this process. This is not an indictment of your work, but rather a strong signal that the community wants to merge your changes! Once approved, your changes may be merged!"
msgstr ""
#: ../../source/contributing/development.rst:254
#: ../../source/contributing/development.rst:253
msgid "Further useful guidelines"
msgstr ""
#: ../../source/contributing/development.rst:256
#: ../../source/contributing/development.rst:255
msgid "When submitting a PR, please mention explicitly if it includes breaking changes."
msgstr ""
#: ../../source/contributing/development.rst:258
#: ../../source/contributing/development.rst:257
msgid "When submitting a PR, make sure that your proposed changes are as general as possible, and ready to be taken advantage of by all of manim's users. In particular, leave out any machine-specific configurations, or any personal information it may contain."
msgstr ""
#: ../../source/contributing/development.rst:263
#: ../../source/contributing/development.rst:262
msgid "If you are a maintainer, please label issues and PRs appropriately and frequently."
msgstr ""
#: ../../source/contributing/development.rst:266
#: ../../source/contributing/development.rst:265
msgid "When opening a new issue, if there are old issues that are related, add a link to them in your new issue (even if the old ones are closed)."
msgstr ""
#: ../../source/contributing/development.rst:269
#: ../../source/contributing/development.rst:268
msgid "When submitting a code review, it is highly recommended that you adhere to `these general guidelines <https://conventionalcomments.org/>`_."
msgstr ""
#: ../../source/contributing/development.rst:272
#: ../../source/contributing/development.rst:271
msgid "If you find stale or inactive issues that seem to be irrelevant, please post a comment saying 'This issue should be closed', and a community developer will take a look."
msgstr ""
#: ../../source/contributing/development.rst:276
#: ../../source/contributing/development.rst:275
msgid "Please do as much as possible to keep issues, PRs, and development in general as tidy as possible."
msgstr ""
#: ../../source/contributing/development.rst:280
msgid "You can find examples for the ``docs`` in several places: the :doc:`Example Gallery <../examples>`, :doc:`Tutorials <../tutorials>`, and :doc:`Reference Classes <../reference>`."
#: ../../source/contributing/development.rst:279
msgid "You can find examples for the ``docs`` in several places: the :doc:`Example Gallery <../examples>`, :doc:`Tutorials <../tutorials/index>`, and :doc:`Reference Classes <../reference>`."
msgstr ""
#: ../../source/contributing/development.rst:284
#: ../../source/contributing/development.rst:283
msgid "In case you are contributing, please have a look at this flowchart:"
msgstr ""

View file

@ -42,7 +42,7 @@ msgstr ""
msgid "Plotting with Manim"
msgstr ""
#: ../../source/examples.rst:438
#: ../../source/examples.rst:496
msgid "Special Camera Settings"
msgstr ""

View file

@ -0,0 +1,181 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/faq/general.md:1
msgid "FAQ: General Usage"
msgstr ""
#: ../../source/faq/general.md:3
msgid "Why does Manim say that \"there are no scenes inside that module\"?"
msgstr ""
#: ../../source/faq/general.md:5
msgid "There are two main reasons why this error appears: if you have edited the file containing your `Scene` class and forgot to save it, or if you have accidentally passed the name of a wrong file to `manim`, this is a likely outcome. Check that you have spelled everything correctly."
msgstr ""
#: ../../source/faq/general.md:10
msgid "Otherwise you are likely mixing up Manim versions. See {ref}`this FAQ answer <different-versions>` for an explanation regarding why there are different versions. Under the assumption that you are trying to use the `manim` executable from the terminal to run a scene that has been written for the community version (i.e., there is `from manim import *`, or more specifically `from manim import Scene`)"
msgstr ""
#: ../../source/faq/general.md:18
msgid "No matter what code I put in my file, Manim only renders a black frame! Why?"
msgstr ""
#: ../../source/faq/general.md:20
msgid "If you are using the usual pattern to write a `Scene`, i.e.,"
msgstr ""
#: ../../source/faq/general.md:27
msgid "then double check whether you have spelled `construct` correctly. If the method containing your code is not called `construct` (or if you are not calling a different, custom method from `construct`), Manim will not call your method and simply output a black frame."
msgstr ""
#: ../../source/faq/general.md:34
msgid "What are the default measurements for Manim's scene?"
msgstr ""
#: ../../source/faq/general.md:36
msgid "The scene measures 8 units in height and has a default ratio of 16:9, which means that it measures {math}`8 \\cdot 16 / 9 = 14 + 2/9` units in width. The origin is in the center of the scene, which means that, for example, the upper left corner of the scene has coordinates `[-7-1/9, 4, 0]`."
msgstr ""
#: ../../source/faq/general.md:43
msgid "How do I find out which keyword arguments I can pass when creating a `Mobject`?"
msgstr ""
#: ../../source/faq/general.md:45
msgid "Let us consider some specific example, like the {class}`.Circle` class. When looking at its documentation page, only two specific keyword arguments are listed (`radius`, and `color`). Besides these concrete arguments, there is also a catchall `**kwargs` argument which captures all other arguments that are passed to `Circle`, and passes them on to the base class of {class}`.Circle`, {class}`.Arc`."
msgstr ""
#: ../../source/faq/general.md:51
msgid "The same holds for {class}`.Arc`: some arguments are explicitly documented, and there is again a catchall `**kwargs` argument that passes unprocessed arguments to the next base class -- and so on."
msgstr ""
#: ../../source/faq/general.md:55
msgid "The most important keyword arguments relevant to styling your mobjects are the ones that are documented for the base classes {class}`.VMobject` and {class}`.Mobject`."
msgstr ""
#: ../../source/faq/general.md:61
msgid "Can Manim render a video with transparent background?"
msgstr ""
#: ../../source/faq/general.md:63
msgid "Yes: simply pass the CLI flag `-t` (or its long form `--transparent`). Note that the default video file format does not support transparency, which is why Manim will output a `.mov` instead of a `.mp4` when rendering with a transparent background. Other movie file formats that support transparency can be obtained by passing `--format=webm` or `--format=gif`."
msgstr ""
#: ../../source/faq/general.md:72
msgid "I have watched a video where a creator ran command X, but it does not work for me. Why?"
msgstr ""
#: ../../source/faq/general.md:74
msgid "The video you have been watching is likely outdated. If you want to follow along, you either need to use the same version used in the video, or modify the code (in many cases it is just a method having been renamed etc.) accordingly. Check the video description, in some cases creators point out whether changes need to be applied to the code shown in the video."
msgstr ""
#: ../../source/faq/general.md:82
msgid "When using `Tex` or `MathTex`, some letters are missing. How can I fix this?"
msgstr ""
#: ../../source/faq/general.md:84
msgid "It is possible that you have to (re)build some fonts used by LaTeX. For some distributions, you can do this manually by running"
msgstr ""
#: ../../source/faq/general.md:89
msgid "We recommend consulting the documentation of your LaTeX distribution for more information."
msgstr ""
#: ../../source/faq/general.md:94
msgid "I want to translate some code from `manimgl` to `manim`, what do I do with `CONFIG` dictionaries?"
msgstr ""
#: ../../source/faq/general.md:96
msgid "The community maintained version has dropped the use of `CONFIG` dictionaries very early, with {doc}`version v0.2.0 </changelog/0.2.0-changelog>` released in January 2021."
msgstr ""
#: ../../source/faq/general.md:100
msgid "Before that, Manim's classes basically processed `CONFIG` dictionaries by mimicking inheritance (to properly process `CONFIG` dictionaries set by parent classes) and then assigning all of the key-value-pairs in the dictionary as attributes of the corresponding object."
msgstr ""
#: ../../source/faq/general.md:105
msgid "In situations where there is not much inheritance going on, or for any custom setting, you should set these attributes yourself. For example, for an old-style `Scene` with custom attributes like"
msgstr ""
#: ../../source/faq/general.md:114
msgid "should be written as"
msgstr ""
#: ../../source/faq/general.md:122
msgid "In situations where values should be properly inherited, the arguments should be added to the initialization function of the class. An old-style mobject `Thing` could look like"
msgstr ""
#: ../../source/faq/general.md:135
msgid "where `stroke_color` and `fill_opacity` are arguments that concern the parent class of `Thing`, and `my_awesome_argument` is a custom argument that only concerns `Thing`. A version without `CONFIG` could look like this:"
msgstr ""
#: ../../source/faq/general.md:150
msgid "My installation does not support converting PDF to SVG, help?"
msgstr ""
#: ../../source/faq/general.md:152
msgid "This is an issue with `dvisvgm`, the tool shipped with LaTeX that transforms LaTeX output to a `.svg` file that Manim can parse."
msgstr ""
#: ../../source/faq/general.md:156
msgid "First, make sure your ``dvisvgm`` version is at least 2.4 by checking the output of"
msgstr ""
#: ../../source/faq/general.md:163
msgid "If you do not know how to update `dvisvgm`, please refer to your LaTeX distributions documentation (or the documentation of your operating system, if `dvisvgm` was installed as a system package)."
msgstr ""
#: ../../source/faq/general.md:167
msgid "Second, check whether your ``dvisvgm`` supports PostScript specials. This is needed to convert from PDF to SVG. Run:"
msgstr ""
#: ../../source/faq/general.md:174
msgid "If the output to this command does **not** contain `ps dvips PostScript specials`, this is a bad sign. In this case, run"
msgstr ""
#: ../../source/faq/general.md:181
msgid "If the output does **not** contain `--libgs=filename`, this means your `dvisvgm` does not currently support PostScript. You must get another binary."
msgstr ""
#: ../../source/faq/general.md:184
msgid "If, however, `--libgs=filename` appears in the help, that means that your `dvisvgm` needs the Ghostscript library to support PostScript. Search for `libgs.so` (on Linux, probably in `/usr/local/lib` or `/usr/lib`) or `gsdll32.dll` (on 32-bit Windows, probably in `C:\\windows\\system32`) or `gsdll64.dll` (on 64-bit Windows, also probably in `C:\\windows\\system32`) or `libgsl.dylib` (on MacOS, probably in `/usr/local/lib` or `/opt/local/lib`). Please look carefully, as the file might be located elsewhere, e.g. in the directory where Ghostscript is installed."
msgstr ""
#: ../../source/faq/general.md:193
msgid "When you have found the library, try (on MacOS or Linux)"
msgstr ""
#: ../../source/faq/general.md:200
msgid "or (on Windows)"
msgstr ""
#: ../../source/faq/general.md:207
msgid "You should now see `ps dvips PostScript specials` in the output. Refer to your operating system's documentation to find out how you can set or export the environment variable ``LIBGS`` automatically whenever you open a shell."
msgstr ""
#: ../../source/faq/general.md:211
msgid "As a last check, you can run"
msgstr ""
#: ../../source/faq/general.md:217
msgid "(while still having `LIBGS` set to the correct path, of course.) If `dvisvgm` can find your Ghostscript installation, it will be shown in the output together with the version number."
msgstr ""
#: ../../source/faq/general.md:221
msgid "If you do not have the necessary library on your system, please refer to your operating system's documentation to find out where you can get it and how you have to install it."
msgstr ""
#: ../../source/faq/general.md:225
msgid "If you are unable to solve your problem, check out the [dvisvgm FAQ](https://dvisvgm.de/FAQ/)."
msgstr ""
#: ../../source/faq/general.md:230
msgid "Where can I find more resources for learning Manim?"
msgstr ""

View file

@ -0,0 +1,105 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/faq/help.md:1
msgid "FAQ: Getting Help"
msgstr ""
#: ../../source/faq/help.md:3
msgid "How do I animate X? Why do I get error Y? Can someone help me?"
msgstr ""
#: ../../source/faq/help.md:5
msgid "Before asking the community, please make sure that the issue you are having is not already discussed in our {doc}`FAQ section </faq/index>` sufficiently well so that you can resolve the problem yourself. You can also try to use your favorite search engine, if you are lucky you might find a blog post, a question on [StackOverflow](https://stackoverflow.com/questions/tagged/manim), or a post in the [r/manim subreddit](https://reddit.com/r/manim)."
msgstr ""
#: ../../source/faq/help.md:12
msgid "If this is not the case, please take a moment to properly prepare your question: the better you manage to explain what exactly it is you are struggling with, the more efficient people will be able to help you. Regardless of the platform you choose in the next step, StackOverflow has a good guide on [asking good questions](https://stackoverflow.com/help/how-to-ask)."
msgstr ""
#: ../../source/faq/help.md:18
msgid "As soon as you have a good idea of what exactly you want to ask, pick one of the following communication channels:"
msgstr ""
#: ../../source/faq/help.md:21
msgid "The community is most active [in our Discord server](https://manim.community/discord/). Click the link to join, then pick one of the `#manim-help` channels in the sidebar, and post your question there. If you are comfortable with using Discord, try to search for your problem using the search function of our server; perhaps people have been talking about it before!"
msgstr ""
#: ../../source/faq/help.md:26
msgid "We are also monitoring questions on [StackOverflow](https://stackoverflow.com/questions/tagged/manim) that are tagged with `manim`."
msgstr ""
#: ../../source/faq/help.md:29
msgid "Many people are also active in our [r/manim subreddit](https://reddit.com/r/manim), feel free to post there if you are an avid Redditor -- but be aware that Discord or StackOverflow might be better choices."
msgstr ""
#: ../../source/faq/help.md:32
msgid "And finally, you can also start a new [discussion on GitHub](https://github.com/ManimCommunity/manim/discussions) if you dislike all other options."
msgstr ""
#: ../../source/faq/help.md:35
msgid "In all of these channels, please make sure to abide by Manim's {doc}`Code of Conduct </conduct>` -- in short, be *excellent* to one another: be friendly and patient, considerate, and respectful."
msgstr ""
#: ../../source/faq/help.md:41
msgid "What should I do if nobody answers my question?"
msgstr ""
#: ../../source/faq/help.md:43
msgid "Try and see whether your question can be improved: did you include all relevant information (in case of errors: the full stack trace, the code that you were rendering, and the command you used to run Manim?). In case you used a very long example, is it possible to construct a more minimal version that has the same (faulty) behavior?"
msgstr ""
#: ../../source/faq/help.md:49
msgid "If you posted in one of our help channels on Discord and your question got buried, you are allowed to ping the `@Manim Helper` role to bring it to the attention of the volunteers who are willing to take a look. Please refrain from pinging the role immediately when asking your question for the first time, this is considered impolite."
msgstr ""
#: ../../source/faq/help.md:54
msgid "You can also try to post your question to a different channel if you feel that you are not having any success with your initial choice -- but please do not spam your question in all of our communication channels (and in particular for Discord: please don't use multiple help channels at once)."
msgstr ""
#: ../../source/faq/help.md:59
msgid "In the end, it is as for most open-source projects: our community members are volunteers. If you do not receive a quick answer to your question, it may be because nobody knows the answer, or because your question is not clear enough, or it could be that everyone who can help you with your problem is busy doing other things."
msgstr ""
#: ../../source/faq/help.md:67
msgid "The library does not behave as documented, or something broke in a new release. What should I do?"
msgstr ""
#: ../../source/faq/help.md:69
msgid "Sounds like you have found a bug. One of the best ways of contributing to the development of Manim is by reporting it!"
msgstr ""
#: ../../source/faq/help.md:72
msgid "Check our list of known issues and feature requests [in our GitHub repository](https://github.com/ManimCommunity/manim/issues). If the problem you have found is not listed there yet (use the search function; also check whether there is a corresponding closed issue, it is possible that your problem has already been resolved and will be fixed with the next release), please consider the following steps to submit a new issue."
msgstr ""
#: ../../source/faq/help.md:80
msgid "If you are unsure whether or not you should file a new issue for some odd behavior that you found, feel free to ask the community developers, preferably in one of our `#manim-dev` channels in [our Discord](https://manim.community/discord/)."
msgstr ""
#: ../../source/faq/help.md:85
msgid "Make sure you are running the latest released version of Manim, your problem might otherwise already be fixed in a more recent version. Check the {doc}`/changelog` for a full list of changes between Manim releases."
msgstr ""
#: ../../source/faq/help.md:89
msgid "Choose the correct category for your report when [creating a new issue](https://github.com/ManimCommunity/manim/issues/new/choose). We have dedicated issue templates for *bug reports*, *feature requests*, and *installation issues*. If your report falls into one of these categories, read the issue template carefully! Instructions are given in the `<!-- ... -->` sections of the text field. If you want to suggest a new feature without concrete implementation details, see {ref}`the instructions given in this answer <creating-suggestions>`."
msgstr ""
#: ../../source/faq/help.md:98
msgid "For bug reports: prepare a minimal example that can be used to illustrate the issue. Examples with hundreds of lines are very inefficient and tedious to debug. Your problem needs to be reproducible for others, so please make sure to prepare a suitable example."
msgstr ""
#: ../../source/faq/help.md:103
msgid "This is mentioned in the bug report template as well, but it is very important: if you report that some code raises an error, make sure to include the full terminal output, from the command you used to run the library up to and including the last line with the error message. Read carefully: if the message mentions that there is another relevant log file, include this other file as well!"
msgstr ""
#: ../../source/faq/help.md:112
msgid "I have an idea for a really cool feature that should be implemented, where should I share my idea?"
msgstr ""

View file

@ -0,0 +1,14 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/faq/index.rst:4
#: ../../source/faq/index.rst:4
msgid "Table of Contents"
msgstr ""

View file

@ -0,0 +1,165 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/faq/installation.md:1
msgid "FAQ: Installation"
msgstr ""
#: ../../source/faq/installation.md:4
msgid "Why are there different versions of Manim?"
msgstr ""
#: ../../source/faq/installation.md:6
msgid "Manim was originally created by Grant Sanderson as a personal project and for use in his YouTube channel, [3Blue1Brown](https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw). As his channel gained popularity, many grew to like the style of his animations and wanted to use manim for their own projects. However, as manim was only intended for personal use, it was very difficult for other users to install and use it."
msgstr ""
#: ../../source/faq/installation.md:13
msgid "In late 2019, Grant started working on faster OpenGL rendering in a new branch, known as the `shaders` branch. In mid-2020, a group of developers forked it into what is now the community edition; this is the version documented on this website. In early 2021, Grant merged the shaders branch back into master, making it the default branch in his repository -- and this is what `manimgl` is. The old version, before merging the `shaders` branch is sometimes referred to as `ManimCairo` and is, at this point, only useful for one singular purpose: rendering Grant's old videos locally on your machine. It is still available in his GitHub repository in form of the `cairo-backend` branch."
msgstr ""
#: ../../source/faq/installation.md:22
msgid "To summarize:"
msgstr ""
#: ../../source/faq/installation.md:23
msgid "[**Manim**, or **ManimCE**](https://manim.community) refers to the community maintained version of the library. This is the version documented on this website; the package name on PyPI is [`manim`](https://pypi.org/project/manim/)."
msgstr ""
#: ../../source/faq/installation.md:26
msgid "[ManimGL](https://github.com/3b1b/manim) is the latest released version of the version of the library developed by Grant \"3b1b\" Sanderson. It has more experimental features and breaking changes between versions are not documented. Check out its documentation [here](https://3b1b.github.io/manim/index.html); on PyPI the package name is [`manimgl`](https://pypi.org/project/manimgl/)."
msgstr ""
#: ../../source/faq/installation.md:31
msgid "[ManimCairo](https://github.com/3b1b/manim/tree/cairo-backend) is the name that is sometimes used for the old, pre-OpenGL version of `manimgl`. The latest version of it is available [on PyPI as `manimlib`](https://pypi.org/project/manimgl/), but note that if you intend to use it to compile some old project of Grant, you will likely have to install the exact version from the time the project was created from source."
msgstr ""
#: ../../source/faq/installation.md:40
msgid "Which version should I use?"
msgstr ""
#: ../../source/faq/installation.md:42
msgid "We recommend the community maintained version especially for beginners. It has been developed to be more stable, better tested and documented (!), and quicker to respond to community contributions. It is also perfectly reasonable to start learning with the community maintained version and then switch to a different version later on."
msgstr ""
#: ../../source/faq/installation.md:47
msgid "If you do not care so much about documentation or stability, and would like to use the exact same version that Grant is using, then use ManimGL."
msgstr ""
#: ../../source/faq/installation.md:50
msgid "And as mentioned above, ManimCairo should only be used for (re)rendering old 3Blue1Brown projects (basically 2019 and before)."
msgstr ""
#: ../../source/faq/installation.md:55
msgid "What are the differences between Manim, ManimGL, ManimCairo? Can I tell for which version a scene was written for?"
msgstr ""
#: ../../source/faq/installation.md:57
msgid "You can! The thing that usually gives it away is the `import` statement at the top of the file; depending on how the code imports Manim you can tell for which version of the code it was written for:"
msgstr ""
#: ../../source/faq/installation.md:61
msgid "If the code imports from `manim` (i.e., `from manim import *`, `import manim as mn`, etc.), then the code you are reading is supposed to be run with the community maintained version."
msgstr ""
#: ../../source/faq/installation.md:63
msgid "If the import reads `import manimlib` (or `from manimlib import *`), you are likely reading a file to be rendered with ManimGL."
msgstr ""
#: ../../source/faq/installation.md:65
msgid "And if the import reads `from manimlib.imports import *`, or perhaps even `from big_ol_pile_of_manim_imports import *` you are reading a snippet that is supposed to be rendered with an early, or very early version of ManimCairo, respectively."
msgstr ""
#: ../../source/faq/installation.md:71
msgid "How do I know which version of Manim I have installed?"
msgstr ""
#: ../../source/faq/installation.md:73
msgid "Assuming you can run `manim` in your terminal and there is some output, check the first line of the text being produced. If you are using the community maintained version, the first line of any output will be `Manim Community <version number>`. If it does not say that, you are likely using ManimGL."
msgstr ""
#: ../../source/faq/installation.md:78
msgid "You can also check the list of packages you have installed: if typing `python` in your terminal spawns the interpreter that corresponds to the Python installation you use (might also be `py`, or `python3`, depending on your operating system), running `python -m pip list` will print a list of all installed packages. Check whether `manim` or `manimgl` appear in that list."
msgstr ""
#: ../../source/faq/installation.md:84
msgid "Similarly, you can use `python -m pip install <package name>` and `python -m pip uninstall <package name>` to install and uninstall packages from that list, respectively."
msgstr ""
#: ../../source/faq/installation.md:90
msgid "I am following the video guide X to install Manim, but some step fails. What do I do?"
msgstr ""
#: ../../source/faq/installation.md:92
msgid "It is only natural that there are many video guides on installing Manim out there, given that Manim is a library used for creating videos. Unfortunately however, (YouTube) videos can't be updated easily (without uploading a new one, that is) when some step in the installation process changes, and so there are many **severely outdated** resources out there."
msgstr ""
#: ../../source/faq/installation.md:98
msgid "This is why we strongly recommend following our {doc}`written installation guide </installation>` to guide you through the process. In case you prefer using a video guide regardless, please check whether the creator whose guide you have been watching has made a more recent version available, and otherwise please contact them directly. Asking for help in the community will likely lead to being suggested to follow our written guide."
msgstr ""
#: ../../source/faq/installation.md:107
msgid "Why does ManimPango fail to install when running `pip install manim`?"
msgstr ""
#: ../../source/faq/installation.md:109
msgid "This most likely means that pip was not able to use our pre-built wheels of the `manimpango` dependency. Let us know (via [Discord](https://www.manim.community/discord/) or by opening a [new issue on GitHub](https://github.com/ManimCommunity/ManimPango/issues/new)) which architecture you would like to see supported, and we'll see what we can do about it."
msgstr ""
#: ../../source/faq/installation.md:116
msgid "To fix errors when installing `manimpango`, you need to make sure you have all the necessary build requirements. Check out the detailed instructions given in [the BUILDING section](https://github.com/ManimCommunity/ManimPango#BUILDING) of [ManimPango's README](https://github.com/ManimCommunity/ManimPango)."
msgstr ""
#: ../../source/faq/installation.md:123
msgid "I am using Windows and get the error `X is not recognized as an internal or external command, operable program or batch file`"
msgstr ""
#: ../../source/faq/installation.md:125
msgid "Regardless of whether `X` says `python` or `manim`, this means that the executable you are trying to run is not located in one of the directories your system is looking for them (specified by the `PATH` variable). Take a look at the instructions {doc}`in the installation guide for Windows </installation/windows>`, or [this StackExchange answer](https://superuser.com/questions/143119/how-do-i-add-python-to-the-windows-path/143121#143121) to get help with editing the `PATH` variable manually."
msgstr ""
#: ../../source/faq/installation.md:132
msgid "If `python` is recognized but not `manim` or `pip`, you can try running commands by prepending `python -m`. That is, `manim` becomes `python -m manim`, and `pip` becomes `python -m pip`."
msgstr ""
#: ../../source/faq/installation.md:138
msgid "I have tried using Chocolatey (`choco install manimce`) to install Manim, but it failed!"
msgstr ""
#: ../../source/faq/installation.md:140
msgid "Make sure that you were running the command with administrator permissions, otherwise there can be problems. If this is not the issue, read Chocolatey's output carefully, it should mention a `.log` file containing information why the process failed."
msgstr ""
#: ../../source/faq/installation.md:145
msgid "You are welcome to take this file (and any other input you feel might be relevant) and submit it to Manim's community to ask for help with your problem. See the {doc}`FAQ on getting help </faq/help>` for instructions."
msgstr ""
#: ../../source/faq/installation.md:151
msgid "On Windows, when typing `python` or `python3` the Windows store is opened, can I fix this?"
msgstr ""
#: ../../source/faq/installation.md:153
msgid "Yes: you can remove these aliases with these steps:"
msgstr ""
#: ../../source/faq/installation.md:155
msgid "Go to the Windows Setting."
msgstr ""
#: ../../source/faq/installation.md:156
msgid "Under *Apps and Features* you will find application execution aliases."
msgstr ""
#: ../../source/faq/installation.md:157
msgid "Within this menu, disable the alias(es) that are causing the issue (`python` and/or `python3`)."
msgstr ""
#: ../../source/faq/installation.md:162
msgid "I am using Anaconda and get an `ImportError` mentioning that some Symbol is not found."
msgstr ""

View file

@ -0,0 +1,17 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/faq/internals.md:1
msgid "Where can I learn more about Manim's internal structure?"
msgstr ""
#: ../../source/faq/internals.md:3
msgid "Efforts to document the internal structure of Manim is ongoing on our [wiki](https://github.com/ManimCommunity/manim/wiki/Developer-documentation-(WIP))."
msgstr ""

View file

@ -0,0 +1,29 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/faq/opengl.md:1
msgid "FAQ: OpenGL rendering"
msgstr ""
#: ../../source/faq/opengl.md:3
msgid "Are there any resources on how the OpenGL renderer in the community maintained version can be used?"
msgstr ""
#: ../../source/faq/opengl.md:5
msgid "Yes. Unfortunately, at this point, the official online documentation does not contain the relevant base classes like `OpenGLMobject` and `OpenGLVMobject` or specific OpenGL classes like `OpenGLSurface`, but documentation for some of them is available in form of docstrings [in the source code](https://github.com/ManimCommunity/manim/tree/main/manim/mobject/opengl)."
msgstr ""
#: ../../source/faq/opengl.md:11
msgid "Furthermore, [this user guide by *aquabeam*](https://www.aquabeam.me/manim/opengl_guide/) can be helpful to get started using the OpenGL renderer."
msgstr ""
#: ../../source/faq/opengl.md:16
msgid "I am trying to run an interactive scene with `--renderer=opengl` and `Scene.interactive_embed`, but an error (`sqlite3.ProgrammingError`) is raised. How can I fix this?"
msgstr ""

View file

@ -0,0 +1,313 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/guides/configuration.rst:2
msgid "Configuration"
msgstr ""
#: ../../source/guides/configuration.rst:4
msgid "Manim provides an extensive configuration system that allows it to adapt to many different use cases. There are many configuration options that can be configured at different times during the scene rendering process. Each option can be configured programmatically via `the ManimConfig class`_, at the time of command invocation via `command-line arguments`_, or at the time the library is first imported via `the config files`_."
msgstr ""
#: ../../source/guides/configuration.rst:11
msgid "The most common, simplest, and recommended way to configure Manim is via the command-line interface (CLI), which is described directly below."
msgstr ""
#: ../../source/guides/configuration.rst:15
msgid "Command-line arguments"
msgstr ""
#: ../../source/guides/configuration.rst:17
msgid "By far the most commonly used command in the CLI is the ``render`` command, which is used to render scene(s) to an output file. It is used with the following arguments:"
msgstr ""
#: ../../source/guides/configuration.rst:24
msgid "However, since Manim defaults to the :code:`render` command whenever no command is specified, the following form is far more common and can be used instead:"
msgstr ""
#: ../../source/guides/configuration.rst:31
msgid "An example of using the above form is:"
msgstr ""
#: ../../source/guides/configuration.rst:37
msgid "This asks Manim to search for a Scene class called :code:`SceneOne` inside the file ``file.py`` and render it with medium quality (specified by the ``-qm`` flag)."
msgstr ""
#: ../../source/guides/configuration.rst:40
msgid "Another frequently used flag is ``-p`` (\"preview\"), which makes manim open the rendered video after it's done rendering."
msgstr ""
#: ../../source/guides/configuration.rst:43
msgid "The ``-p`` flag does not change any properties of the global ``config`` dict. The ``-p`` flag is only a command-line convenience."
msgstr ""
#: ../../source/guides/configuration.rst:47
msgid "Advanced examples"
msgstr ""
#: ../../source/guides/configuration.rst:49
msgid "To render a scene in high quality, but only output the last frame of the scene instead of the whole video, you can execute"
msgstr ""
#: ../../source/guides/configuration.rst:56
msgid "The following example specifies the output file name (with the :code:`-o` flag), renders only the first ten animations (:code:`-n` flag) with a white background (:code:`-c` flag), and saves the animation as a ``.gif`` instead of as a ``.mp4`` file (``--format=gif`` flag). It uses the default quality and does not try to open the file after it is rendered."
msgstr ""
#: ../../source/guides/configuration.rst:67
msgid "A list of all CLI flags"
msgstr ""
#: ../../source/guides/configuration.rst:75
msgid "The ManimConfig class"
msgstr ""
#: ../../source/guides/configuration.rst:77
msgid "The most direct way of configuring Manim is through the global ``config`` object, which is an instance of :class:`.ManimConfig`. Each property of this class is a config option that can be accessed either with standard attribute syntax or with dict-like syntax:"
msgstr ""
#: ../../source/guides/configuration.rst:88
msgid "The former is preferred; the latter is provided for backwards compatibility."
msgstr ""
#: ../../source/guides/configuration.rst:91
msgid "Most classes, including :class:`.Camera`, :class:`.Mobject`, and :class:`.Animation`, read some of their default configuration from the global ``config``."
msgstr ""
#: ../../source/guides/configuration.rst:103
msgid ":class:`.ManimConfig` is designed to keep internal consistency. For example, setting ``frame_y_radius`` will affect ``frame_height``:"
msgstr ""
#: ../../source/guides/configuration.rst:114
msgid "The global ``config`` object is meant to be the single source of truth for all config options. All of the other ways of setting config options ultimately change the values of the global ``config`` object."
msgstr ""
#: ../../source/guides/configuration.rst:118
msgid "The following example illustrates the video resolution chosen for examples rendered in our documentation with a reference frame."
msgstr ""
#: ../../source/guides/configuration.rst:140
msgid "The config files"
msgstr ""
#: ../../source/guides/configuration.rst:142
msgid "As the last example shows, executing Manim from the command line may involve using many flags simultaneously. This may become a nuisance if you must execute the same script many times in a short time period, for example, when making small incremental tweaks to your scene script. For this reason, Manim can also be configured using a configuration file. A configuration file is a file ending with the suffix ``.cfg``."
msgstr ""
#: ../../source/guides/configuration.rst:149
msgid "To use a local configuration file when rendering your scene, you must create a file with the name ``manim.cfg`` in the same directory as your scene code."
msgstr ""
#: ../../source/guides/configuration.rst:152
msgid "The config file **must** be named ``manim.cfg``. Currently, Manim does not support config files with any other name."
msgstr ""
#: ../../source/guides/configuration.rst:155
msgid "The config file must start with the section header ``[CLI]``. The configuration options under this header have the same name as the CLI flags and serve the same purpose. Take, for example, the following config file."
msgstr ""
#: ../../source/guides/configuration.rst:167
msgid "Config files are parsed with the standard python library ``configparser``. In particular, they will ignore any line that starts with a pound symbol ``#``."
msgstr ""
#: ../../source/guides/configuration.rst:170
msgid "Now, executing the following command"
msgstr ""
#: ../../source/guides/configuration.rst:176
msgid "is equivalent to executing the following command, provided that ``manim.cfg`` is in the same directory as <file.py>,"
msgstr ""
#: ../../source/guides/configuration.rst:183
msgid "The names of the configuration options admissible in config files are exactly the same as the **long names** of the corresponding command- line flags. For example, the ``-c`` and ``--background_color`` flags are interchangeable, but the config file only accepts :code:`background_color` as an admissible option."
msgstr ""
#: ../../source/guides/configuration.rst:189
msgid "Since config files are meant to replace CLI flags, all CLI flags can be set via a config file. Moreover, any config option can be set via a config file, whether or not it has an associated CLI flag. See the bottom of this document for a list of all CLI flags and config options."
msgstr ""
#: ../../source/guides/configuration.rst:194
msgid "Manim will look for a ``manim.cfg`` config file in the same directory as the file being rendered, and **not** in the directory of execution. For example,"
msgstr ""
#: ../../source/guides/configuration.rst:201
msgid "will use the config file found in ``path/to/file.py``, if any. It will **not** use the config file found in the current working directory, even if it exists. In this way, the user may keep different config files for different scenes or projects, and execute them with the right configuration from anywhere in the system."
msgstr ""
#: ../../source/guides/configuration.rst:207
msgid "The file described here is called the **folder-wide** config file because it affects all scene scripts found in the same folder."
msgstr ""
#: ../../source/guides/configuration.rst:212
msgid "The user config file"
msgstr ""
#: ../../source/guides/configuration.rst:214
msgid "As explained in the previous section, a :code:`manim.cfg` config file only affects the scene scripts in its same folder. However, the user may also create a special config file that will apply to all scenes rendered by that user. This is referred to as the **user-wide** config file, and it will apply regardless of where Manim is executed from, and regardless of where the scene script is stored."
msgstr ""
#: ../../source/guides/configuration.rst:221
msgid "The user-wide config file lives in a special folder, depending on the operating system."
msgstr ""
#: ../../source/guides/configuration.rst:224
msgid "Windows: :code:`UserDirectory`/AppData/Roaming/Manim/manim.cfg"
msgstr ""
#: ../../source/guides/configuration.rst:225
msgid "MacOS: :code:`UserDirectory`/.config/manim/manim.cfg"
msgstr ""
#: ../../source/guides/configuration.rst:226
msgid "Linux: :code:`UserDirectory`/.config/manim/manim.cfg"
msgstr ""
#: ../../source/guides/configuration.rst:228
msgid "Here, :code:`UserDirectory` is the user's home folder."
msgstr ""
#: ../../source/guides/configuration.rst:231
msgid "A user may have many **folder-wide** config files, one per folder, but only one **user-wide** config file. Different users in the same computer may each have their own user-wide config file."
msgstr ""
#: ../../source/guides/configuration.rst:235
msgid "Do not store scene scripts in the same folder as the user-wide config file. In this case, the behavior is undefined."
msgstr ""
#: ../../source/guides/configuration.rst:238
msgid "Whenever you use Manim from anywhere in the system, Manim will look for a user-wide config file and read its configuration."
msgstr ""
#: ../../source/guides/configuration.rst:243
msgid "Cascading config files"
msgstr ""
#: ../../source/guides/configuration.rst:245
msgid "What happens if you execute Manim and it finds both a folder-wide config file and a user-wide config file? Manim will read both files, but if they are incompatible, **the folder-wide file takes precedence**."
msgstr ""
#: ../../source/guides/configuration.rst:249
msgid "For example, take the following user-wide config file"
msgstr ""
#: ../../source/guides/configuration.rst:259
msgid "and the following folder-wide file"
msgstr ""
#: ../../source/guides/configuration.rst:267
msgid "Then, executing :code:`manim <file.py> SceneName` will be equivalent to not using any config files and executing"
msgstr ""
#: ../../source/guides/configuration.rst:274
msgid "Any command-line flags have precedence over any config file. For example, using the previous two config files and executing :code:`manim -c RED <file.py> SceneName` is equivalent to not using any config files and executing"
msgstr ""
#: ../../source/guides/configuration.rst:283
msgid "There is also a **library-wide** config file that determines Manim's default behavior and applies to every user of the library. It has the least precedence, so any config options in the user-wide and any folder-wide files will override the library-wide file. This is referred to as the *cascading* config file system."
msgstr ""
#: ../../source/guides/configuration.rst:289
msgid "**The user should not try to modify the library-wide file**. Contributors should receive explicit confirmation from the core developer team before modifying it."
msgstr ""
#: ../../source/guides/configuration.rst:295
msgid "Order of operations"
msgstr ""
#: ../../source/guides/configuration.rst:304
msgid "With so many different ways of configuring Manim, it can be difficult to know when each config option is being set. In fact, this will depend on how Manim is being used."
msgstr ""
#: ../../source/guides/configuration.rst:308
msgid "If Manim is imported from a module, then the configuration system will follow these steps:"
msgstr ""
#: ../../source/guides/configuration.rst:311
msgid "The library-wide config file is loaded."
msgstr ""
#: ../../source/guides/configuration.rst:312
msgid "The user-wide and folder-wide files are loaded if they exist."
msgstr ""
#: ../../source/guides/configuration.rst:313
msgid "All files found in the previous two steps are parsed in a single :class:`ConfigParser` object, called ``parser``. This is where *cascading* happens."
msgstr ""
#: ../../source/guides/configuration.rst:316
msgid ":class:`logging.Logger` is instantiated to create Manim's global ``logger`` object. It is configured using the \"logger\" section of the parser, i.e. ``parser['logger']``."
msgstr ""
#: ../../source/guides/configuration.rst:319
msgid ":class:`ManimConfig` is instantiated to create the global ``config`` object."
msgstr ""
#: ../../source/guides/configuration.rst:320
msgid "The ``parser`` from step 3 is fed into the ``config`` from step 5 via :meth:`ManimConfig.digest_parser`."
msgstr ""
#: ../../source/guides/configuration.rst:322
msgid "Both ``logger`` and ``config`` are exposed to the user."
msgstr ""
#: ../../source/guides/configuration.rst:324
msgid "If Manim is being invoked from the command line, all of the previous steps happen, and are complemented by:"
msgstr ""
#: ../../source/guides/configuration.rst:327
msgid "The CLI flags are parsed and fed into ``config`` via :meth:`~ManimConfig.digest_args`."
msgstr ""
#: ../../source/guides/configuration.rst:329
msgid "If the ``--config_file`` flag was used, a new :class:`ConfigParser` object is created with the contents of the library-wide file, the user-wide file if it exists, and the file passed via ``--config_file``. In this case, the folder-wide file, if it exists, is ignored."
msgstr ""
#: ../../source/guides/configuration.rst:333
msgid "The new parser is fed into ``config``."
msgstr ""
#: ../../source/guides/configuration.rst:334
msgid "The rest of the CLI flags are processed."
msgstr ""
#: ../../source/guides/configuration.rst:336
msgid "To summarize, the order of precedence for configuration options, from lowest to highest precedence is:"
msgstr ""
#: ../../source/guides/configuration.rst:339
msgid "Library-wide config file,"
msgstr ""
#: ../../source/guides/configuration.rst:340
msgid "user-wide config file, if it exists,"
msgstr ""
#: ../../source/guides/configuration.rst:341
msgid "folder-wide config file, if it exists OR custom config file, if passed via ``--config_file``,"
msgstr ""
#: ../../source/guides/configuration.rst:343
msgid "other CLI flags, and"
msgstr ""
#: ../../source/guides/configuration.rst:344
msgid "any programmatic changes made after the config system is set."
msgstr ""
#: ../../source/guides/configuration.rst:348
msgid "A list of all config options"
msgstr ""
#: ../../source/guides/configuration.rst:369
msgid "Accessing CLI command options"
msgstr ""
#: ../../source/guides/configuration.rst:371
msgid "Entering ``manim``, or ``manim --help``, will open the main help page."
msgstr ""

View file

@ -0,0 +1,633 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/guides/deep_dive.rst:2
msgid "A deep dive into Manim's internals"
msgstr ""
#: ../../source/guides/deep_dive.rst:4
msgid "**Author:** `Benjamin Hackl <https://benjamin-hackl.at>`__"
msgstr ""
#: ../../source/guides/deep_dive.rst:6
msgid "Disclaimer"
msgstr ""
#: ../../source/guides/deep_dive.rst:8
msgid "This guide reflects the state of the library as of version ``v0.16.0`` and primarily treats the Cairo renderer. The situation in the latest version of Manim might be different; in case of substantial deviations we will add a note below."
msgstr ""
#: ../../source/guides/deep_dive.rst:14
msgid "Introduction"
msgstr ""
#: ../../source/guides/deep_dive.rst:16
msgid "Manim can be a wonderful library, if it behaves the way you would like it to, and/or the way you expect it to. Unfortunately, this is not always the case (as you probably know if you have played with some manimations yourself already). To understand where things *go wrong*, digging through the library's source code is sometimes the only option -- but in order to do that, you need to know where to start digging."
msgstr ""
#: ../../source/guides/deep_dive.rst:23
msgid "This article is intended as some sort of life line through the render process. We aim to give an appropriate amount of detail describing what happens when Manim reads your scene code and produces the corresponding animation. Throughout this article, we will focus on the following toy example::"
msgstr ""
#: ../../source/guides/deep_dive.rst:43
msgid "Before we go into details or even look at the rendered output of this scene, let us first describe verbally what happens in this *manimation*. In the first three lines of the ``construct`` method, a :class:`.Square` and a :class:`.Circle` are initialized, then the square is added to the scene. The first frame of the rendered output should thus show an orange square."
msgstr ""
#: ../../source/guides/deep_dive.rst:49
msgid "Then the actual animations happen: the square first transforms into a circle, then a :class:`.Dot` is created (Where do you guess the dot is located when it is first added to the scene? Answering this already requires detailed knowledge about the render process.). The dot has an updater attached to it, and as the circle moves right, the dot moves with it. In the end, all mobjects are faded out."
msgstr ""
#: ../../source/guides/deep_dive.rst:56
msgid "Actually rendering the code yields the following video:"
msgstr ""
#: ../../source/guides/deep_dive.rst:75
msgid "For this example, the output (fortunately) coincides with our expectations."
msgstr ""
#: ../../source/guides/deep_dive.rst:78
msgid "Overview"
msgstr ""
#: ../../source/guides/deep_dive.rst:80
msgid "Because there is a lot of information in this article, here is a brief overview discussing the contents of the following chapters on a very high level."
msgstr ""
#: ../../source/guides/deep_dive.rst:83
msgid "`Preliminaries`_: In this chapter we unravel all the steps that take place to prepare a scene for rendering; right until the point where the user-overridden ``construct`` method is ran. This includes a brief discussion on using Manim's CLI versus other means of rendering (e.g., via Jupyter notebooks, or in your Python script by calling the :meth:`.Scene.render` method yourself)."
msgstr ""
#: ../../source/guides/deep_dive.rst:88
msgid "`Mobject Initialization`_: For the second chapter we dive into creating and handling Mobjects, the basic elements that should be displayed in our scene. We discuss the :class:`.Mobject` base class, how there are essentially three different types of Mobjects, and then discuss the most important of them, vectorized Mobjects. In particular, we describe the internal point data structure that governs how the mechanism responsible for drawing the vectorized Mobject to the screen sets the corresponding Bézier curves. We conclude the chapter with a tour into :meth:`.Scene.add`, the bookkeeping mechanism controlling which mobjects should be rendered."
msgstr ""
#: ../../source/guides/deep_dive.rst:97
msgid "`Animations and the Render Loop`_: And finally, in the last chapter we walk through the instantiation of :class:`.Animation` objects (the blueprints that hold information on how Mobjects should be modified when the render loop runs), followed by a investigation of the infamous :meth:`.Scene.play` call. We will see that there are three relevant parts in a :meth:`.Scene.play` call; a part in which the passed animations and keyword arguments are processed and prepared, followed by the actual \"render loop\" in which the library steps through a time line and renders frame by frame. The final part does some post-processing to save a short video segment (\"partial movie file\") and cleanup for the next call to :meth:`.Scene.play`. In the end, after all of :meth:`.Scene.construct` has been run, the library combines the partial movie files to one video."
msgstr ""
#: ../../source/guides/deep_dive.rst:110
msgid "And with that, let us get *in medias res*."
msgstr ""
#: ../../source/guides/deep_dive.rst:113
msgid "Preliminaries"
msgstr ""
#: ../../source/guides/deep_dive.rst:116
msgid "Importing the library"
msgstr ""
#: ../../source/guides/deep_dive.rst:118
msgid "Independent of how exactly you are telling your system to render the scene, i.e., whether you run ``manim -qm -p file_name.py ToyExample``, or whether you are rendering the scene directly from the Python script via a snippet like"
msgstr ""
#: ../../source/guides/deep_dive.rst:129
msgid "or whether you are rendering the code in a Jupyter notebook, you are still telling your python interpreter to import the library. The usual pattern used to do this is"
msgstr ""
#: ../../source/guides/deep_dive.rst:136
msgid "which (while being a debatable strategy in general) imports a lot of classes and functions shipped with the library and makes them available in your global name space. I explicitly avoided stating that it imports **all** classes and functions of the library, because it does not do that: Manim makes use of the practice described in `Section 6.4.1 of the Python tutorial <https://docs.python.org/3/tutorial/modules.html#importing-from-a-package>`__, and all module members that should be exposed to the user upon running the ``*``-import are explicitly declared in the ``__all__`` variable of the module."
msgstr ""
#: ../../source/guides/deep_dive.rst:144
msgid "Manim also uses this strategy internally: taking a peek at the file that is run when the import is called, ``__init__.py`` (see `here <https://github.com/ManimCommunity/manim/blob/main/manim/__init__.py>`__), you will notice that most of the code in that module is concerned with importing members from various different submodules, again using ``*``-imports."
msgstr ""
#: ../../source/guides/deep_dive.rst:152
msgid "If you would ever contribute a new submodule to Manim, the main ``__init__.py`` is where it would have to be listed in order to make its members accessible to users after importing the library."
msgstr ""
#: ../../source/guides/deep_dive.rst:156
msgid "In that file, there is one particular import at the beginning of the file however, namely::"
msgstr ""
#: ../../source/guides/deep_dive.rst:161
msgid "This initializes Manim's global configuration system, which is used in various places throughout the library. After the library runs this line, the current configuration options are set. The code in there takes care of reading the options in your ``.cfg`` files (all users have at least the global one that is shipped with the library) as well as correctly handling command line arguments (if you used the CLI to render)."
msgstr ""
#: ../../source/guides/deep_dive.rst:167
msgid "You can read more about the config system in the :doc:`corresponding thematic guide </guides/configuration>`, and if you are interested in learning more about the internals of the configuration system and how it is initialized, follow the code flow starting in `the config module's init file <https://github.com/ManimCommunity/manim/blob/main/manim/_config/__init__.py>`__."
msgstr ""
#: ../../source/guides/deep_dive.rst:173
msgid "Now that the library is imported, we can turn our attention to the next step: reading your scene code (which is not particularly exciting, Python just creates a new class ``ToyExample`` based on our code; Manim is virtually not involved in that step, with the exception that ``ToyExample`` inherits from ``Scene``)."
msgstr ""
#: ../../source/guides/deep_dive.rst:178
msgid "However, with the ``ToyExample`` class created and ready to go, there is a new excellent question to answer: how is the code in our ``construct`` method actually executed?"
msgstr ""
#: ../../source/guides/deep_dive.rst:183
msgid "Scene instantiation and rendering"
msgstr ""
#: ../../source/guides/deep_dive.rst:185
msgid "The answer to this question depends on how exactly you are running the code. To make things a bit clearer, let us first consider the case that you have created a file ``toy_example.py`` which looks like this::"
msgstr ""
#: ../../source/guides/deep_dive.rst:208
msgid "With such a file, the desired scene is rendered by simply running this Python script via ``python toy_example.py``. Then, as described above, the library is imported and Python has read and defined the ``ToyExample`` class (but, read carefully: *no instance of this class has been created yet*)."
msgstr ""
#: ../../source/guides/deep_dive.rst:213
msgid "At this point, the interpreter is about to enter the ``tempconfig`` context manager. Even if you have not seen Manim's ``tempconfig`` before, it's name already suggests what it does: it creates a copy of the current state of the configuration, applies the changes to the key-value pairs in the passed dictionary, and upon leaving the context the original version of the configuration is restored. TL;DR: it provides a fancy way of temporarily setting configuration options."
msgstr ""
#: ../../source/guides/deep_dive.rst:221
msgid "Inside the context manager, two things happen: an actual ``ToyExample``-scene object is instantiated, and the ``render`` method is called. Every way of using Manim ultimately does something along of these lines, the library always instantiates the scene object and then calls its ``render`` method. To illustrate that this really is the case, let us briefly look at the two most common ways of rendering scenes:"
msgstr ""
#: ../../source/guides/deep_dive.rst:228
msgid "**Command Line Interface.** When using the CLI and running the command ``manim -qm -p toy_example.py ToyExample`` in your terminal, the actual entry point is Manim's ``__main__.py`` file (located `here <https://github.com/ManimCommunity/manim/blob/main/manim/__main__.py>`__. Manim uses `Click <https://click.palletsprojects.com/en/8.0.x/>`__ to implement the command line interface, and the corresponding code is located in Manim's ``cli`` module (https://github.com/ManimCommunity/manim/tree/main/manim/cli). The corresponding code creating the scene class and calling its render method is located `here <https://github.com/ManimCommunity/manim/blob/ac1ee9a683ce8b92233407351c681f7d71a4f2db/manim/cli/render/commands.py#L139-L141>`__."
msgstr ""
#: ../../source/guides/deep_dive.rst:238
msgid "**Jupyter notebooks.** In Jupyter notebooks, the communication with the library is handled by the ``%%manim`` magic command, which is implemented in the ``manim.utils.ipython_magic`` module. There is :meth:`some documentation <.ManimMagic.manim>` available for the magic command, and the code creating the scene class and calling its render method is located `here <https://github.com/ManimCommunity/manim/blob/ac1ee9a683ce8b92233407351c681f7d71a4f2db/manim/utils/ipython_magic.py#L137-L138>`__."
msgstr ""
#: ../../source/guides/deep_dive.rst:246
msgid "Now that we know that either way, a :class:`.Scene` object is created, let us investigate what Manim does when that happens. When instantiating our scene object"
msgstr ""
#: ../../source/guides/deep_dive.rst:253
msgid "the ``Scene.__init__`` method is called, given that we did not implement our own initialization method. Inspecting the corresponding code (see `here <https://github.com/ManimCommunity/manim/blob/main/manim/scene/scene.py>`__) reveals that ``Scene.__init__`` first sets several attributes of the scene objects that do not depend on any configuration options set in ``config``. Then the scene inspects the value of ``config.renderer``, and based on its value, either instantiates a ``CairoRenderer`` or an ``OpenGLRenderer`` object and assigns it to its ``renderer`` attribute."
msgstr ""
#: ../../source/guides/deep_dive.rst:261
msgid "The scene then asks its renderer to initialize the scene by calling"
msgstr ""
#: ../../source/guides/deep_dive.rst:267
msgid "Inspecting both the default Cairo renderer and the OpenGL renderer shows that the ``init_scene`` method effectively makes the renderer instantiate a :class:`.SceneFileWriter` object, which basically is Manim's interface to ``ffmpeg`` and actually writes the movie file. The Cairo renderer (see the implementation `here <https://github.com/ManimCommunity/manim/blob/main/manim/renderer/cairo_renderer.py>`__) does not require any further initialization. The OpenGL renderer does some additional setup to enable the realtime rendering preview window, which we do not go into detail further here."
msgstr ""
#: ../../source/guides/deep_dive.rst:276
msgid "Currently, there is a lot of interplay between a scene and its renderer. This is a flaw in Manim's current architecture, and we are working on reducing this interdependency to achieve a less convoluted code flow."
msgstr ""
#: ../../source/guides/deep_dive.rst:280
msgid "After the renderer has been instantiated and initialized its file writer, the scene populates further initial attributes (notable mention: the ``mobjects`` attribute which keeps track of the mobjects that have been added to the scene). It is then done with its instantiation and ready to be rendered."
msgstr ""
#: ../../source/guides/deep_dive.rst:285
msgid "The rest of this article is concerned with the last line in our toy example script::"
msgstr ""
#: ../../source/guides/deep_dive.rst:289
msgid "This is where the actual magic happens."
msgstr ""
#: ../../source/guides/deep_dive.rst:291
msgid "Inspecting the `implementation of the render method <https://github.com/ManimCommunity/manim/blob/df1a60421ea1119cbbbd143ef288d294851baaac/manim/scene/scene.py#L211>`__ reveals that there are several hooks that can be used for pre- or postprocessing a scene. Unsurprisingly, :meth:`.Scene.render` describes the full *render cycle* of a scene. During this life cycle, there are three custom methods whose base implementation is empty and that can be overwritten to suit your purposes. In the order they are called, these customizable methods are:"
msgstr ""
#: ../../source/guides/deep_dive.rst:298
msgid ":meth:`.Scene.setup`, which is intended for preparing and, well, *setting up* the scene for your animation (e.g., adding initial mobjects, assigning custom attributes to your scene class, etc.),"
msgstr ""
#: ../../source/guides/deep_dive.rst:301
msgid ":meth:`.Scene.construct`, which is the *script* for your screen play and contains programmatic descriptions of your animations, and"
msgstr ""
#: ../../source/guides/deep_dive.rst:303
msgid ":meth:`.Scene.tear_down`, which is intended for any operations you might want to run on the scene after the last frame has already been rendered (for example, this could run some code that generates a custom thumbnail for the video based on the state of the objects in the scene -- this hook is more relevant for situations where Manim is used within other Python scripts)."
msgstr ""
#: ../../source/guides/deep_dive.rst:310
msgid "After these three methods are run, the animations have been fully rendered, and Manim calls :meth:`.CairoRenderer.scene_finished` to gracefully complete the rendering process. This checks whether any animations have been played -- and if so, it tells the :class:`.SceneFileWriter` to close the pipe to ``ffmpeg``. If not, Manim assumes that a static image should be output which it then renders using the same strategy by calling the render loop (see below) once."
msgstr ""
#: ../../source/guides/deep_dive.rst:318
msgid "**Back in our toy example,** the call to :meth:`.Scene.render` first triggers :meth:`.Scene.setup` (which only consists of ``pass``), followed by a call of :meth:`.Scene.construct`. At this point, our *animation script* is run, starting with the initialization of ``orange_square``."
msgstr ""
#: ../../source/guides/deep_dive.rst:325
msgid "Mobject Initialization"
msgstr ""
#: ../../source/guides/deep_dive.rst:327
msgid "Mobjects are, in a nutshell, the Python objects that represent all the *things* we want to display in our scene. Before we follow our debugger into the depths of mobject initialization code, it makes sense to discuss Manim's different types of Mobjects and their basic data structure."
msgstr ""
#: ../../source/guides/deep_dive.rst:334
msgid "What even is a Mobject?"
msgstr ""
#: ../../source/guides/deep_dive.rst:336
msgid ":class:`.Mobject` stands for *mathematical object* or *Manim object* (depends on who you ask 😄). The Python class :class:`.Mobject` is the base class for all objects that should be displayed on screen. Looking at the `initialization method <https://github.com/ManimCommunity/manim/blob/5d72d9cfa2e3dd21c844b1da807576f5a7194fda/manim/mobject/mobject.py#L94>`__ of :class:`.Mobject`, you will find that not too much happens in there:"
msgstr ""
#: ../../source/guides/deep_dive.rst:343
msgid "some initial attribute values are assigned, like ``name`` (which makes the render logs mention the name of the mobject instead of its type), ``submobjects`` (initially an empty list), ``color``, and some others."
msgstr ""
#: ../../source/guides/deep_dive.rst:346
msgid "Then, two methods related to *points* are called: ``reset_points`` followed by ``generate_points``,"
msgstr ""
#: ../../source/guides/deep_dive.rst:348
msgid "and finally, ``init_colors`` is called."
msgstr ""
#: ../../source/guides/deep_dive.rst:350
msgid "Digging deeper, you will find that :meth:`.Mobject.reset_points` simply sets the ``points`` attribute of the mobject to an empty NumPy vector, while the other two methods, :meth:`.Mobject.generate_points` and :meth:`.Mobject.init_colors` are just implemented as ``pass``."
msgstr ""
#: ../../source/guides/deep_dive.rst:355
msgid "This makes sense: :class:`.Mobject` is not supposed to be used as an *actual* object that is displayed on screen; in fact the camera (which we will discuss later in more detail; it is the class that is, for the Cairo renderer, responsible for \"taking a picture\" of the current scene) does not process \"pure\" :class:`Mobjects <.Mobject>` in any way, they *cannot* even appear in the rendered output."
msgstr ""
#: ../../source/guides/deep_dive.rst:362
msgid "This is where different types of mobjects come into play. Roughly speaking, the Cairo renderer setup knows three different types of mobjects that can be rendered:"
msgstr ""
#: ../../source/guides/deep_dive.rst:366
msgid ":class:`.ImageMobject`, which represent images that you can display in your scene,"
msgstr ""
#: ../../source/guides/deep_dive.rst:368
msgid ":class:`.PMobject`, which are very special mobjects used to represent point clouds; we will not discuss them further in this guide,"
msgstr ""
#: ../../source/guides/deep_dive.rst:370
msgid ":class:`.VMobject`, which are *vectorized mobjects*, that is, mobjects that consist of points that are connected via curves. These are pretty much everywhere, and we will discuss them in detail in the next section."
msgstr ""
#: ../../source/guides/deep_dive.rst:375
msgid "... and what are VMobjects?"
msgstr ""
#: ../../source/guides/deep_dive.rst:377
msgid "As just mentioned, :class:`VMobjects <.VMobject>` represent vectorized mobjects. To render a :class:`.VMobject`, the camera looks at the ``points`` attribute of a :class:`.VMobject` and divides it into sets of four points each. Each of these sets is then used to construct a cubic Bézier curve with the first and last entry describing the end points of the curve (\"anchors\"), and the second and third entry describing the control points in between (\"handles\")."
msgstr ""
#: ../../source/guides/deep_dive.rst:386
msgid "To learn more about Bézier curves, take a look at the excellent online textbook `A Primer on Bézier curves <https://pomax.github.io/bezierinfo/>`__ by `Pomax <https://twitter.com/TheRealPomax>`__ -- there is an playground representing cubic Bézier curves `in §1 <https://pomax.github.io/bezierinfo/#introduction>`__, the red and yellow points are \"anchors\", and the green and blue points are \"handles\"."
msgstr ""
#: ../../source/guides/deep_dive.rst:393
msgid "In contrast to :class:`.Mobject`, :class:`.VMobject` can be displayed on screen (even though, technically, it is still considered a base class). To illustrate how points are processed, consider the following short example of a :class:`.VMobject` with 8 points (and thus made out of 8/4 = 2 cubic Bézier curves). The resulting :class:`.VMobject` is drawn in green. The handles are drawn as red dots with a line to their closest anchor."
msgstr ""
#: ../../source/guides/deep_dive.rst:433
msgid "Manually setting the points of your :class:`.VMobject` is usually discouraged; there are specialized methods that can take care of that for you -- but it might be relevant when implementing your own, custom :class:`.VMobject`."
msgstr ""
#: ../../source/guides/deep_dive.rst:441
msgid "Squares and Circles: back to our Toy Example"
msgstr ""
#: ../../source/guides/deep_dive.rst:443
msgid "With a basic understanding of different types of mobjects, and an idea of how vectorized mobjects are built we can now come back to our toy example and the execution of the :meth:`.Scene.construct` method. In the first two lines of our animation script, the ``orange_square`` and the ``blue_circle`` are initialized."
msgstr ""
#: ../../source/guides/deep_dive.rst:450
msgid "When creating the orange square by running"
msgstr ""
#: ../../source/guides/deep_dive.rst:456
msgid "the initialization method of :class:`.Square`, ``Square.__init__``, is called. `Looking at the implementation <https://github.com/ManimCommunity/manim/blob/5d72d9cfa2e3dd21c844b1da807576f5a7194fda/manim/mobject/geometry/polygram.py#L607>`__, we can see that the ``side_length`` attribute of the square is set, and then"
msgstr ""
#: ../../source/guides/deep_dive.rst:466
msgid "is called. This ``super`` call is the Python way of calling the initialization function of the parent class. As :class:`.Square` inherits from :class:`.Rectangle`, the next method called is ``Rectangle.__init__``. There, only the first three lines are really relevant for us::"
msgstr ""
#: ../../source/guides/deep_dive.rst:476
msgid "First, the initialization function of the parent class of :class:`.Rectangle` -- :class:`.Polygon` -- is called. The four positional arguments passed are the four corners of the polygon: ``UR`` is up right (and equal to ``UP + RIGHT``), ``UL`` is up left (and equal to ``UP + LEFT``), and so forth. Before we follow our debugger deeper, let us observe what happens with the constructed polygon: the remaining two lines stretch the polygon to fit the specified width and height such that a rectangle with the desired measurements is created."
msgstr ""
#: ../../source/guides/deep_dive.rst:486
msgid "The initialization function of :class:`.Polygon` is particularly simple, it only calls the initialization function of its parent class, :class:`.Polygram`. There, we have almost reached the end of the chain: :class:`.Polygram` inherits from :class:`.VMobject`, whose initialization function mainly sets the values of some attributes (quite similar to ``Mobject.__init__``, but more specific to the Bézier curves that make up the mobject)."
msgstr ""
#: ../../source/guides/deep_dive.rst:494
msgid "After calling the initialization function of :class:`.VMobject`, the constructor of :class:`.Polygram` also does something somewhat odd: it sets the points (which, you might remember above, should actually be set in a corresponding ``generate_points`` method of :class:`.Polygram`)."
msgstr ""
#: ../../source/guides/deep_dive.rst:501
msgid "In several instances, the implementation of mobjects does not really stick to all aspects of Manim's interface. This is unfortunate, and increasing consistency is something that we actively work on. Help is welcome!"
msgstr ""
#: ../../source/guides/deep_dive.rst:506
msgid "Without going too much into detail, :class:`.Polygram` sets its ``points`` attribute via :meth:`.VMobject.start_new_path`, :meth:`.VMobject.add_points_as_corners`, which take care of setting the quadruples of anchors and handles appropriately. After the points are set, Python continues to process the call stack until it reaches the method that was first called; the initialization method of :class:`.Square`. After this, the square is initialized and assigned to the ``orange_square`` variable."
msgstr ""
#: ../../source/guides/deep_dive.rst:516
msgid "The initialization of ``blue_circle`` is similar to the one of ``orange_square``, with the main difference being that the inheritance chain of :class:`.Circle` is different. Let us briefly follow the trace of the debugger:"
msgstr ""
#: ../../source/guides/deep_dive.rst:521
msgid "The implementation of :meth:`.Circle.__init__` immediately calls the initialization method of :class:`.Arc`, as a circle in Manim is simply an arc with an angle of :math:`\\tau = 2\\pi`. When initializing the arc, some basic attributes are set (like ``Arc.radius``, ``Arc.arc_center``, ``Arc.start_angle``, and ``Arc.angle``), and then the initialization method of its parent class, :class:`.TipableVMobject`, is called (which is a rather abstract base class for mobjects which a arrow tip can be attached to). Note that in contrast to :class:`.Polygram`, this class does **not** preemptively generate the points of the circle."
msgstr ""
#: ../../source/guides/deep_dive.rst:532
msgid "After that, things are less exciting: :class:`.TipableVMobject` again sets some attributes relevant for adding arrow tips, and afterwards passes to the initialization method of :class:`.VMobject`. From there, :class:`.Mobject` is initialized and :meth:`.Mobject.generate_points` is called, which actually runs the method implemented in :meth:`.Arc.generate_points`."
msgstr ""
#: ../../source/guides/deep_dive.rst:539
msgid "After both our ``orange_square`` and the ``blue_circle`` are initialized, the square is actually added to the scene. The :meth:`.Scene.add` method is actually doing a few interesting things, so it is worth to dig a bit deeper in the next section."
msgstr ""
#: ../../source/guides/deep_dive.rst:546
msgid "Adding Mobjects to the Scene"
msgstr ""
#: ../../source/guides/deep_dive.rst:548
msgid "The code in our ``construct`` method that is run next is"
msgstr ""
#: ../../source/guides/deep_dive.rst:554
msgid "From a high-level point of view, :meth:`.Scene.add` adds the ``orange_square`` to the list of mobjects that should be rendered, which is stored in the ``mobjects`` attribute of the scene. However, it does so in a very careful way to avoid the situation that a mobject is being added to the scene more than once. At a first glance, this sounds like a simple task -- the problem is that ``Scene.mobjects`` is not a \"flat\" list of mobjects, but a list of mobjects which might contain mobjects themselves, and so on."
msgstr ""
#: ../../source/guides/deep_dive.rst:563
msgid "Stepping through the code in :meth:`.Scene.add`, we see that first it is checked whether we are currently using the OpenGL renderer (which we are not) -- adding mobjects to the scene works slightly different (and actually easier!) for the OpenGL renderer. Then, the code branch for the Cairo renderer is entered and the list of so-called foreground mobjects (which are rendered on top of all other mobjects) is added to the list of passed mobjects. This is to ensure that the foreground mobjects will stay above of the other mobjects, even after adding the new ones. In our case, the list of foreground mobjects is actually empty, and nothing changes."
msgstr ""
#: ../../source/guides/deep_dive.rst:574
msgid "Next, :meth:`.Scene.restructure_mobjects` is called with the list of mobjects to be added as the ``to_remove`` argument, which might sound odd at first. Practically, this ensures that mobjects are not added twice, as mentioned above: if they were present in the scene ``Scene.mobjects`` list before (even if they were contained as a child of some other mobject), they are first removed from the list. The way :meth:`.Scene.restrucutre_mobjects` works is rather aggressive: It always operates on a given list of mobjects; in the ``add`` method two different lists occur: the default one, ``Scene.mobjects`` (no extra keyword argument is passed), and ``Scene.moving_mobjects`` (which we will discuss later in more detail). It iterates through all of the members of the list, and checks whether any of the mobjects passed in ``to_remove`` are contained as children (in any nesting level). If so, **their parent mobject is deconstructed** and their siblings are inserted directly one level higher. Consider the following example::"
msgstr ""
#: ../../source/guides/deep_dive.rst:604
msgid "Note that the group is disbanded and the circle moves into the root layer of mobjects in ``test_scene.mobjects``."
msgstr ""
#: ../../source/guides/deep_dive.rst:607
msgid "After the mobject list is \"restructured\", the mobject to be added are simply appended to ``Scene.mobjects``. In our toy example, the ``Scene.mobjects`` list is actually empty, so the ``restructure_mobjects`` method does not actually do anything. The ``orange_square`` is simply added to ``Scene.mobjects``, and as the aforementioned ``Scene.moving_mobjects`` list is, at this point, also still empty, nothing happens and :meth:`.Scene.add` returns."
msgstr ""
#: ../../source/guides/deep_dive.rst:615
msgid "We will hear more about the ``moving_mobject`` list when we discuss the render loop. Before we do that, let us look at the next line of code in our toy example, which includes the initialization of an animation class, ::"
msgstr ""
#: ../../source/guides/deep_dive.rst:623
msgid "Hence it is time to talk about :class:`.Animation`."
msgstr ""
#: ../../source/guides/deep_dive.rst:627
msgid "Animations and the Render Loop"
msgstr ""
#: ../../source/guides/deep_dive.rst:630
msgid "Initializing animations"
msgstr ""
#: ../../source/guides/deep_dive.rst:632
msgid "Before we follow the trace of the debugger, let us briefly discuss the general structure of the (abstract) base class :class:`.Animation`. An animation object holds all the information necessary for the renderer to generate the corresponding frames. Animations (in the sense of animation objects) in Manim are *always* tied to a specific mobject; even in the case of :class:`.AnimationGroup` (which you should actually think of as an animation on a group of mobjects rather than a group of animations). Moreover, except for in a particular special case, the run time of animations is also fixed and known beforehand."
msgstr ""
#: ../../source/guides/deep_dive.rst:642
msgid "The initialization of animations actually is not very exciting, :meth:`.Animation.__init__` merely sets some attributes derived from the passed keyword arguments and additionally ensures that the ``Animation.starting_mobject`` and ``Animation.mobject`` attributes are populated. Once the animation is played, the ``starting_mobject`` attribute holds an unmodified copy of the mobject the animation is attached to; during the initialization it is set to a placeholder mobject. The ``mobject`` attribute is set to the mobject the animation is attached to."
msgstr ""
#: ../../source/guides/deep_dive.rst:652
msgid "Animations have a few special methods which are called during the render loop:"
msgstr ""
#: ../../source/guides/deep_dive.rst:655
msgid ":meth:`.Animation.begin`, which is called (as hinted by its name) at the beginning of every animation, so before the first frame is rendered. In it, all the required setup for the animation happens."
msgstr ""
#: ../../source/guides/deep_dive.rst:658
msgid ":meth:`.Animation.finish` is the counterpart to the ``begin`` method which is called at the end of the life cycle of the animation (after the last frame has been rendered)."
msgstr ""
#: ../../source/guides/deep_dive.rst:661
msgid ":meth:`.Animation.interpolate` is the method that updates the mobject attached to the animation to the corresponding animation completion percentage. For example, if in the render loop, ``some_animation.interpolate(0.5)`` is called, the attached mobject will be updated to the state where 50% of the animation are completed."
msgstr ""
#: ../../source/guides/deep_dive.rst:667
msgid "We will discuss details about these and some further animation methods once we walk through the actual render loop. For now, we continue with our toy example and the code that is run when initializing the :class:`.ReplacementTransform` animation."
msgstr ""
#: ../../source/guides/deep_dive.rst:672
msgid "The initialization method of :class:`.ReplacementTransform` only consists of a call to the constructor of its parent class, :class:`.Transform`, with the additional keyword argument ``replace_mobject_with_target_in_scene`` set to ``True``. :class:`.Transform` then sets attributes that control how the points of the starting mobject are deformed into the points of the target mobject, and then passes on to the initialization method of :class:`.Animation`. Other basic properties of the animation (like its ``run_time``, the ``rate_func``, etc.) are processed there -- and then the animation object is fully initialized and ready to be played."
msgstr ""
#: ../../source/guides/deep_dive.rst:685
msgid "The ``play`` call: preparing to enter Manim's render loop"
msgstr ""
#: ../../source/guides/deep_dive.rst:687
msgid "We are finally there, the render loop is in our reach. Let us walk through the code that is run when :meth:`.Scene.play` is called."
msgstr ""
#: ../../source/guides/deep_dive.rst:692
msgid "Recall that this article is specifically about the Cairo renderer. Up to here, things were more or less the same for the OpenGL renderer as well; while some base mobjects might be different, the control flow and lifecycle of mobjects is still more or less the same. There are more substantial differences when it comes to the rendering loop."
msgstr ""
#: ../../source/guides/deep_dive.rst:698
msgid "As you will see when inspecting the method, :meth:`.Scene.play` almost immediately passes over to the ``play`` method of the renderer, in our case :class:`.CairoRenderer.play`. The one thing :meth:`.Scene.play` takes care of is the management of subcaptions that you might have passed to it (see the the documentation of :meth:`.Scene.play` and :meth:`.Scene.add_subcaption` for more information)."
msgstr ""
#: ../../source/guides/deep_dive.rst:707
msgid "As has been said before, the communication between scene and renderer is not in a very clean state at this point, so the following paragraphs might be confusing if you don't run a debugger and step through the code yourself a bit."
msgstr ""
#: ../../source/guides/deep_dive.rst:712
msgid "Inside :meth:`.CairoRenderer.play`, the renderer first checks whether it may skip rendering of the current play call. This might happen, for example, when ``-s`` is passed to the CLI (i.e., only the last frame should be rendered), or when the ``-n`` flag is passed and the current play call is outside of the specified render bounds. The \"skipping status\" is updated in form of the call to :meth:`.CairoRenderer.update_skipping_status`."
msgstr ""
#: ../../source/guides/deep_dive.rst:719
msgid "Next, the renderer asks the scene to process the animations in the play call so that renderer obtains all of the information it needs. To be more concrete, :meth:`.Scene.compile_animation_data` is called, which then takes care of several things:"
msgstr ""
#: ../../source/guides/deep_dive.rst:724
msgid "The method processes all animations and the keyword arguments passed to the initial :meth:`.Scene.play` call. In particular, this means that it makes sure all arguments passed to the play call are actually animations (or ``.animate`` syntax calls, which are also assembled to be actual :class:`.Animation`-objects at that point). It also propagates any animation-related keyword arguments (like ``run_time``, or ``rate_func``) passed to :class:`.Scene.play` to each individual animation. The processed animations are then stored in the ``animations`` attribute of the scene (which the renderer later reads...)."
msgstr ""
#: ../../source/guides/deep_dive.rst:733
msgid "It adds all mobjects to which the animations that are played are bound to to the scene (provided the animation is not an mobject-introducing animation -- for these, the addition to the scene happens later)."
msgstr ""
#: ../../source/guides/deep_dive.rst:736
msgid "In case the played animation is a :class:`.Wait` animation (this is the case in a :meth:`.Scene.wait` call), the method checks whether a static image should be rendered, or whether the render loop should be processed as usual (see :meth:`.Scene.should_update_mobjects` for the exact conditions, basically it checks whether there are any time-dependent updater functions and so on)."
msgstr ""
#: ../../source/guides/deep_dive.rst:742
msgid "Finally, the method determines the total run time of the play call (which at this point is computed as the maximum of the run times of the passed animations). This is stored in the ``duration`` attribute of the scene."
msgstr ""
#: ../../source/guides/deep_dive.rst:747
msgid "After the animation data has been compiled by the scene, the renderer continues to prepare for entering the render loop. It now checks the skipping status which has been determined before. If the renderer can skip this play call, it does so: it sets the current play call hash (which we will get back to in a moment) to ``None`` and increases the time of the renderer by the determined animation run time."
msgstr ""
#: ../../source/guides/deep_dive.rst:754
msgid "Otherwise, the renderer checks whether or not Manim's caching system should be used. The idea of the caching system is simple: for every play call, a hash value is computed, which is then stored and upon re-rendering the scene, the hash is generated again and checked against the stored value. If it is the same, the cached output is reused, otherwise it is fully rerendered again. We will not go into details of the caching system here; if you would like to learn more, the :func:`.get_hash_from_play_call` function in the :mod:`.utils.hashing` module is essentially the entry point to the caching mechanism."
msgstr ""
#: ../../source/guides/deep_dive.rst:764
msgid "In the event that the animation has to be rendered, the renderer asks its :class:`.SceneFileWriter` to start a writing process. The process is started by a call to ``ffmpeg`` and opens a pipe to which rendered raw frames can be written. As long as the pipe is open, the process can be accessed via the ``writing_process`` attribute of the file writer. With the writing process in place, the renderer then asks the scene to \"begin\" the animations."
msgstr ""
#: ../../source/guides/deep_dive.rst:772
msgid "First, it literally *begins* all of the animations by calling their setup methods (:meth:`.Animation._setup_scene`, :meth:`.Animation.begin`). In doing so, the mobjects that are newly introduced by an animation (like via :class:`.Create` etc.) are added to the scene. Furthermore, the animation suspends updater functions being called on its mobject, and it sets its mobject to the state that corresponds to the first frame of the animation."
msgstr ""
#: ../../source/guides/deep_dive.rst:780
msgid "After this has happened for all animations in the current ``play`` call, the Cairo renderer determines which of the scene's mobjects can be painted statically to the background, and which ones have to be redrawn every frame. It does so by calling :meth:`.Scene.get_moving_and_static_mobjects`, and the resulting partition of mobjects is stored in the corresponding ``moving_mobjects`` and ``static_mobjects`` attributes."
msgstr ""
#: ../../source/guides/deep_dive.rst:790
msgid "The mechanism that determines static and moving mobjects is specific for the Cairo renderer, the OpenGL renderer works differently. Basically, moving mobjects are determined by checking whether they, any of their children, or any of the mobjects \"below\" them (in the sense of the order in which mobjects are processed in the scene) either have an update function attached, or whether they appear in one of the current animations. See the implementation of :meth:`.Scene.get_moving_mobjects` for more details."
msgstr ""
#: ../../source/guides/deep_dive.rst:799
msgid "Up to this very point, we did not actually render any (partial) image or movie files from the scene yet. This is, however, about to change. Before we enter the render loop, let us briefly revisit our toy example and discuss how the generic :meth:`.Scene.play` call setup looks like there."
msgstr ""
#: ../../source/guides/deep_dive.rst:805
msgid "For the call that plays the :class:`.ReplacementTransform`, there is no subcaption to be taken care of. The renderer then asks the scene to compile the animation data: the passed argument already is an animation (no additional preparations needed), there is no need for processing any keyword arguments (as we did not specify any additional ones to ``play``). The mobject bound to the animation, ``orange_square``, is already part of the scene (so again, no action taken). Finally, the run time is extracted (3 seconds long) and stored in ``Scene.duration``. The renderer then checks whether it should skip (it should not), then whether the animation is already cached (it is not). The corresponding animation hash value is determined and passed to the file writer, which then also calls ``ffmpeg`` to start the writing process which waits for rendered frames from the library."
msgstr ""
#: ../../source/guides/deep_dive.rst:821
msgid "The scene then ``begin``\\ s the animation: for the :class:`.ReplacementTransform` this means that the animation populates all of its relevant animation attributes (i.e., compatible copies of the starting and the target mobject so that it can safely interpolate between the two)."
msgstr ""
#: ../../source/guides/deep_dive.rst:827
msgid "The mechanism determining static and moving mobjects considers all of the scenes mobjects (at this point only the ``orange_square``), and determines that the ``orange_square`` is bound to an animation that is currently played. As a result, the square is classified as a \"moving mobject\"."
msgstr ""
#: ../../source/guides/deep_dive.rst:833
msgid "Time to render some frames."
msgstr ""
#: ../../source/guides/deep_dive.rst:837
msgid "The render loop (for real this time)"
msgstr ""
#: ../../source/guides/deep_dive.rst:839
msgid "As mentioned above, due to the mechanism that determines static and moving mobjects in the scene, the renderer knows which mobjects it can paint statically to the background of the scene. Practically, this means that it partially renders a scene (to produce a background image), and then when iterating through the time progression of the animation only the \"moving mobjects\" are re-painted on top of the static background."
msgstr ""
#: ../../source/guides/deep_dive.rst:846
msgid "The renderer calls :meth:`.CairoRenderer.save_static_frame_data`, which first checks whether there are currently any static mobjects, and if there are, it updates the frame (only with the static mobjects; more about how exactly this works in a moment) and then saves a NumPy array representing the rendered frame in the ``static_image`` attribute. In our toy example, there are no static mobjects, and so the ``static_image`` attribute is simply set to ``None``."
msgstr ""
#: ../../source/guides/deep_dive.rst:854
msgid "Next, the renderer asks the scene whether the current animation is a \"frozen frame\" animation, which would mean that the renderer actually does not have to repaint the moving mobjects in every frame of the time progression. It can then just take the latest static frame, and display it throughout the animation."
msgstr ""
#: ../../source/guides/deep_dive.rst:862
msgid "An animation is considered a \"frozen frame\" animation if only a static :class:`.Wait` animation is played. See the description of :meth:`.Scene.compile_animation_data` above, or the implementation of :meth:`.Scene.should_update_mobjects` for more details."
msgstr ""
#: ../../source/guides/deep_dive.rst:868
msgid "If this is not the case (just as in our toy example), the renderer then calls the :meth:`.Scene.play_internal` method, which is the integral part of the render loop (in which the library steps through the time progression of the animation and renders the corresponding frames)."
msgstr ""
#: ../../source/guides/deep_dive.rst:874
msgid "Within :meth:`.Scene.play_internal`, the following steps are performed:"
msgstr ""
#: ../../source/guides/deep_dive.rst:876
msgid "The scene determines the run time of the animations by calling :meth:`.Scene.get_run_time`. This method basically takes the maximum ``run_time`` attribute of all of the animations passed to the :meth:`.Scene.play` call."
msgstr ""
#: ../../source/guides/deep_dive.rst:880
msgid "Then the *time progression* is constructed via the (internal) :meth:`.Scene._get_animation_time_progression` method, which wraps the actual :meth:`.Scene.get_time_progression` method. The time progression is a ``tqdm`` `progress bar object <https://tqdm.github.io>`__ for an iterator over ``np.arange(0, run_time, 1 / config.frame_rate)``. In other words, the time progression holds the time stamps (relative to the current animations, so starting at 0 and ending at the total animation run time, with the step size determined by the render frame rate) of the timeline where a new animation frame should be rendered."
msgstr ""
#: ../../source/guides/deep_dive.rst:889
msgid "Then the scene iterates over the time progression: for each time stamp ``t``, :meth:`.Scene.update_to_time` is called, which ..."
msgstr ""
#: ../../source/guides/deep_dive.rst:892
msgid "... first computes the time passed since the last update (which might be 0, especially for the initial call) and references it as ``dt``,"
msgstr ""
#: ../../source/guides/deep_dive.rst:894
msgid "then (in the order in which the animations are passed to :meth:`.Scene.play`) calls :meth:`.Animation.update_mobjects` to trigger all updater functions that are attached to the respective animation except for the \"main mobject\" of the animation (that is, for example, for :class:`.Transform` the unmodified copies of start and target mobject -- see :meth:`.Animation.get_all_mobjects_to_update` for more details),"
msgstr ""
#: ../../source/guides/deep_dive.rst:900
msgid "then the relative time progression with respect to the current animation is computed (``alpha = t / animation.run_time``), which is then used to update the state of the animation with a call to :meth:`.Animation.interpolate`."
msgstr ""
#: ../../source/guides/deep_dive.rst:903
msgid "After all of the passed animations have been processed, the updater functions of all mobjects in the scene, all meshes, and finally those attached to the scene itself are run."
msgstr ""
#: ../../source/guides/deep_dive.rst:907
msgid "At this point, the internal (Python) state of all mobjects has been updated to match the currently processed timestamp. If rendering should not be skipped, then it is now time to *take a picture*!"
msgstr ""
#: ../../source/guides/deep_dive.rst:913
msgid "The update of the internal state (iteration over the time progression) happens *always* once :meth:`.Scene.play_internal` is entered. This ensures that even if frames do not need to be rendered (because, e.g., the ``-n`` CLI flag has been passed, something has been cached, or because we might be in a *Section* with skipped rendering), updater functions still run correctly, and the state of the first frame that *is* rendered is kept consistent."
msgstr ""
#: ../../source/guides/deep_dive.rst:920
msgid "To render an image, the scene calls the corresponding method of its renderer, :meth:`.CairoRenderer.render` and passes just the list of *moving mobjects* (remember, the *static mobjects* are assumed to have already been painted statically to the background of the scene). All of the hard work then happens when the renderer updates its current frame via a call to :meth:`.CairoRenderer.update_frame`:"
msgstr ""
#: ../../source/guides/deep_dive.rst:926
msgid "First, the renderer prepares its :class:`.Camera` by checking whether the renderer has a ``static_image`` different from ``None`` stored already. If so, it sets the image as the *background image* of the camera via :meth:`.Camera.set_frame_to_background`, and otherwise it just resets the camera via :meth:`.Camera.reset`. The camera is then asked to capture the scene with a call to :meth:`.Camera.camture_mobjects`."
msgstr ""
#: ../../source/guides/deep_dive.rst:932
msgid "Things get a bit technical here, and at some point it is more efficient to delve into the implementation -- but here is a summary of what happens once the camera is asked to capture the scene:"
msgstr ""
#: ../../source/guides/deep_dive.rst:936
msgid "First, a flat list of mobjects is created (so submobjects get extracted from their parents). This list is then processed in groups of the same type of mobjects (e.g., a batch of vectorized mobjects, followed by a batch of image mobjects, followed by more vectorized mobjects, etc. -- in many cases there will just be one batch of vectorized mobjects)."
msgstr ""
#: ../../source/guides/deep_dive.rst:941
msgid "Depending on the type of the currently processed batch, the camera uses dedicated *display functions* to convert the :class:`.Mobject` Python object to a NumPy array stored in the camera's ``pixel_array`` attribute. The most important example in that context is the display function for vectorized mobjects, :meth:`.Camera.display_multiple_vectorized_mobjects`, or the more particular (in case you did not add a background image to your :class:`.VMobject`), :meth:`.Camera.display_multiple_non_background_colored_vmobjects`. This method first gets the current Cairo context, and then, for every (vectorized) mobject in the batch, calls :meth:`.Camera.display_vectorized`. There, the actual background stroke, fill, and then stroke of the mobject is drawn onto the context. See :meth:`.Camera.apply_stroke` and :meth:`.Camera.set_cairo_context_color` for more details -- but it does not get much deeper than that, in the latter method the actual Bézier curves determined by the points of the mobject are drawn; this is where the low-level interaction with Cairo happens."
msgstr ""
#: ../../source/guides/deep_dive.rst:957
msgid "After all batches have been processed, the camera has an image representation of the Scene at the current time stamp in form of a NumPy array stored in its ``pixel_array`` attribute. The renderer then takes this array and passes it to its :class:`.SceneFileWriter`. This concludes one iteration of the render loop, and once the time progression has been processed completely, a final bit of cleanup is performed before the :meth:`.Scene.play_internal` call is completed."
msgstr ""
#: ../../source/guides/deep_dive.rst:964
msgid "A TL;DR for the render loop, in the context of our toy example, reads as follows:"
msgstr ""
#: ../../source/guides/deep_dive.rst:966
msgid "The scene finds that a 3 second long animation (the :class:`.ReplacementTransform` changing the orange square to the blue circle) should be played. Given the requested medium render quality, the frame rate is 30 frames per second, and so the time progression with steps ``[0, 1/30, 2/30, ..., 89/30]`` is created."
msgstr ""
#: ../../source/guides/deep_dive.rst:970
msgid "In the internal render loop, each of these time stamps is processed: there are no updater functions, so effectively the scene updates the state of the transformation animation to the desired time stamp (for example, at time stamp ``t = 45/30``, the animation is completed to a rate of ``alpha = 0.5``)."
msgstr ""
#: ../../source/guides/deep_dive.rst:975
msgid "Then the scene asks the renderer to do its job. The renderer asks its camera to capture the scene, the only mobject that needs to be processed at this point is the main mobject attached to the transformation; the camera converts the current state of the mobject to entries in a NumPy array. The renderer passes this array to the file writer."
msgstr ""
#: ../../source/guides/deep_dive.rst:980
msgid "At the end of the loop, 90 frames have been passed to the file writer."
msgstr ""
#: ../../source/guides/deep_dive.rst:983
msgid "Completing the render loop"
msgstr ""
#: ../../source/guides/deep_dive.rst:985
msgid "The last few steps in the :meth:`.Scene.play_internal` call are not too exciting: for every animation, the corresponding :meth:`.Animation.finish` and :meth:`.Animation.clean_up_from_scene` methods are called."
msgstr ""
#: ../../source/guides/deep_dive.rst:991
msgid "Note that as part of :meth:`.Animation.finish`, the :meth:`.Animation.interpolate` method is called with an argument of 1.0 -- you might have noticed already that the last frame of an animation can sometimes be a bit off or incomplete. This is by current design! The last frame rendered in the render loop (and displayed for a duration of ``1 / frame_rate`` seconds in the rendered video) corresponds to the state of the animation ``1 / frame_rate`` seconds before it ends. To display the final frame as well in the video, we would need to append another ``1 / frame_rate`` seconds to the video -- which would then mean that a 1 second rendered Manim video would be slightly longer than 1 second. We decided against this at some point."
msgstr ""
#: ../../source/guides/deep_dive.rst:1001
msgid "In the end, the time progression is closed (which completes the displayed progress bar) in the terminal. With the closing of the time progression, the :meth:`.Scene.play_internal` call is completed, and we return to the renderer, which now orders the :class:`.SceneFileWriter` to close the movie pipe that has been opened for this animation: a partial movie file is written."
msgstr ""
#: ../../source/guides/deep_dive.rst:1007
msgid "This pretty much concludes the walkthrough of a :class:`.Scene.play` call, and actually there is not too much more to say for our toy example either: at this point, a partial movie file that represents playing the :class:`.ReplacementTransform` has been written. The initialization of the :class:`.Dot` happens analogous to the initialization of ``blue_circle``, which has been discussed above. The :meth:`.Mobject.add_updater` call literally just attaches a function to the ``updaters`` attribute of the ``small_dot``. And the remaining :meth:`.Scene.play` and :meth:`.Scene.wait` calls follow the exact same procedure as discussed in the render loop section above; each such call produces a corresponding partial movie file."
msgstr ""
#: ../../source/guides/deep_dive.rst:1018
msgid "Once the :meth:`.Scene.construct` method has been fully processed (and thus all of the corresponding partial movie files have been written), the scene calls its cleanup method :meth:`.Scene.tear_down`, and then asks its renderer to finish the scene. The renderer, in turn, asks its scene file writer to wrap things up by calling :meth:`.SceneFileWriter.finish`, which triggers the combination of the partial movie files into the final product."
msgstr ""

View file

@ -0,0 +1,14 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/guides/index.rst:4
#: ../../source/guides/index.rst:4
msgid "Table of Contents"
msgstr ""

View file

@ -0,0 +1,269 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/guides/using_text.rst:3
msgid "Rendering Text and Formulas"
msgstr ""
#: ../../source/guides/using_text.rst:5
msgid "There are two different ways by which you can render **Text** in videos:"
msgstr ""
#: ../../source/guides/using_text.rst:7
msgid "Using Pango (:mod:`~.text_mobject`)"
msgstr ""
#: ../../source/guides/using_text.rst:8
msgid "Using LaTeX (:mod:`~.tex_mobject`)"
msgstr ""
#: ../../source/guides/using_text.rst:10
msgid "If you want to render simple text, you should use either :class:`~.Text` or :class:`~.MarkupText`, or one of its derivatives like :class:`~.Paragraph`. See :ref:`using-text-objects` for more information."
msgstr ""
#: ../../source/guides/using_text.rst:14
msgid "LaTeX should be used when you need mathematical typesetting. See :ref:`rendering-with-latex` for more information."
msgstr ""
#: ../../source/guides/using_text.rst:20
msgid "Text Without LaTeX"
msgstr ""
#: ../../source/guides/using_text.rst:22
msgid "The simplest way to add text to your animations is to use the :class:`~.Text` class. It uses the `Pango library`_ to render text. With Pango, you can also render non-English alphabets like 你好 or こんにちは or 안녕하세요 or مرحبا بالعالم."
msgstr ""
#: ../../source/guides/using_text.rst:27
msgid "Here is a simple *Hello World* animation."
msgstr ""
#: ../../source/guides/using_text.rst:38
msgid "You can also use :class:`~.MarkupText` which allows the use of PangoMarkup (see the documentation of :class:`~.MarkupText` for details) to render text. For example:"
msgstr ""
#: ../../source/guides/using_text.rst:56
msgid "Working with :class:`~.Text`"
msgstr ""
#: ../../source/guides/using_text.rst:58
msgid "This section explains the properties of :class:`~.Text` and how can it be used in your animations."
msgstr ""
#: ../../source/guides/using_text.rst:62
msgid "Using Fonts"
msgstr ""
#: ../../source/guides/using_text.rst:64
msgid "You can set a different font using :attr:`~.Text.font`."
msgstr ""
#: ../../source/guides/using_text.rst:68
msgid "The font used must be installed in your system, and Pango should know about it. You can get a list of fonts using :func:`manimpango.list_fonts`."
msgstr ""
#: ../../source/guides/using_text.rst:85
msgid "Setting Slant and Weight"
msgstr ""
#: ../../source/guides/using_text.rst:86
msgid "Slant is the style of the Text, and it can be ``NORMAL`` (the default), ``ITALIC`` or ``OBLIQUE``. Usually, for many fonts both ``ITALIC`` and ``OBLIQUE`` look similar, but ``ITALIC`` uses **Roman Style**, whereas ``OBLIQUE`` uses **Italic Style**."
msgstr ""
#: ../../source/guides/using_text.rst:91
msgid "Weight specifies the boldness of a font. You can see a list of weights in :class:`manimpango.Weight`."
msgstr ""
#: ../../source/guides/using_text.rst:126
msgid "Using Colors"
msgstr ""
#: ../../source/guides/using_text.rst:128
msgid "You can set the color of the text using :attr:`~.Text.color`:"
msgstr ""
#: ../../source/guides/using_text.rst:138
msgid "You can use utilities like :attr:`~.Text.t2c` for coloring specific characters. This may be problematic if your text contains ligatures as explained in :ref:`iterating-text`."
msgstr ""
#: ../../source/guides/using_text.rst:142
msgid ":attr:`~Text.t2c` accepts two types of dictionaries,"
msgstr ""
#: ../../source/guides/using_text.rst:144
msgid "The keys can contain indices like ``[2:-1]`` or ``[4:8]``, this works similar to how `slicing <https://realpython.com/python-strings/#string-slicing>`_ works in Python. The values should be the color of the Text from :class:`~.Color`."
msgstr ""
#: ../../source/guides/using_text.rst:149
msgid "The keys contain words or characters which should be colored separately and the values should be the color from :class:`~.Color`:"
msgstr ""
#: ../../source/guides/using_text.rst:161
msgid "If you want to avoid problems when using colors (due to ligatures), consider using :class:`MarkupText`."
msgstr ""
#: ../../source/guides/using_text.rst:166
msgid "Using Gradients"
msgstr ""
#: ../../source/guides/using_text.rst:168
msgid "You can add a gradient using :attr:`~.Text.gradient`. The value must be an iterable of any length:"
msgstr ""
#: ../../source/guides/using_text.rst:179
msgid "You can also use :attr:`~.Text.t2g` for gradients with specific characters of the text. It shares a similar syntax to :ref:`the interface for colors <using-colors>`:"
msgstr ""
#: ../../source/guides/using_text.rst:203
msgid "Setting Line Spacing"
msgstr ""
#: ../../source/guides/using_text.rst:205
msgid "You can set the line spacing using :attr:`~.Text.line_spacing`:"
msgstr ""
#: ../../source/guides/using_text.rst:220
msgid "Disabling Ligatures"
msgstr ""
#: ../../source/guides/using_text.rst:222
msgid "By disabling ligatures you would get a one-to-one mapping between characters and submobjects. This fixes the issues with coloring text."
msgstr ""
#: ../../source/guides/using_text.rst:228
msgid "Be aware that using this method with text that heavily depends on ligatures (Arabic text) may yield unexpected results."
msgstr ""
#: ../../source/guides/using_text.rst:231
msgid "You can disable ligatures by passing ``disable_ligatures`` to :class:`Text`. For example:"
msgstr ""
#: ../../source/guides/using_text.rst:246
msgid "Iterating :class:`~.Text`"
msgstr ""
#: ../../source/guides/using_text.rst:248
msgid "Text objects behave like :class:`VGroups <.VGroup>`. Therefore, you can slice and index the text."
msgstr ""
#: ../../source/guides/using_text.rst:251
msgid "For example, you can set each letter to different color by iterating it."
msgstr ""
#: ../../source/guides/using_text.rst:265
msgid "Please note that `Ligature`_ can cause problems here. If you need a one-to-one mapping of characters to submobjects you should pass the ``disable_ligatures`` parameter to :class:`~.Text`. See :ref:`disable-ligatures`."
msgstr ""
#: ../../source/guides/using_text.rst:273
msgid "Working with :class:`~.MarkupText`"
msgstr ""
#: ../../source/guides/using_text.rst:275
msgid "MarkupText is similar to :class:`~.Text`, the only difference between them is that this accepts and processes PangoMarkup (which is similar to html), instead of just rendering plain text."
msgstr ""
#: ../../source/guides/using_text.rst:279
msgid "Consult the documentation of :class:`~.MarkupText` for more details and further references about PangoMarkup."
msgstr ""
#: ../../source/guides/using_text.rst:297
msgid "Text With LaTeX"
msgstr ""
#: ../../source/guides/using_text.rst:299
msgid "Just as you can use :class:`~.Text` to add text to your videos, you can use :class:`~.Tex` to insert LaTeX."
msgstr ""
#: ../../source/guides/using_text.rst:302
msgid "For example,"
msgstr ""
#: ../../source/guides/using_text.rst:314
msgid "Note that we are using a raw string (``r'...'``) instead of a regular string (``'...'``). This is because TeX code uses a lot of special characters - like ``\\`` for example - that have special meaning within a regular python string. An alternative would have been to write ``\\\\`` to escape the backslash: ``Tex('\\\\LaTeX')``."
msgstr ""
#: ../../source/guides/using_text.rst:320
msgid "Working with :class:`~.MathTex`"
msgstr ""
#: ../../source/guides/using_text.rst:322
msgid "Everything passed to :class:`~.MathTex` is in math mode by default. To be more precise, :class:`~.MathTex` is processed within an ``align*`` environment. You can achieve a similar effect with :class:`~.Tex` by enclosing your formula with ``$`` symbols: ``$\\xrightarrow{x^6y^8}$``:"
msgstr ""
#: ../../source/guides/using_text.rst:339
msgid "LaTeX commands and keyword arguments"
msgstr ""
#: ../../source/guides/using_text.rst:341
msgid "We can use any standard LaTeX commands in the AMS maths packages. Such as the ``mathtt`` math-text type or the ``looparrowright`` arrow."
msgstr ""
#: ../../source/guides/using_text.rst:352
msgid "On the Manim side, the :class:`~.Tex` class also accepts attributes to change the appearance of the output. This is very similar to the :class:`~.Text` class. For example, the ``color`` keyword changes the color of the TeX mobject."
msgstr ""
#: ../../source/guides/using_text.rst:366
msgid "Extra LaTeX Packages"
msgstr ""
#: ../../source/guides/using_text.rst:368
msgid "Some commands require special packages to be loaded into the TeX template. For example, to use the ``mathscr`` script, we need to add the ``mathrsfs`` package. Since this package isn't loaded into Manim's tex template by default, we have to add it manually."
msgstr ""
#: ../../source/guides/using_text.rst:388
msgid "Substrings and parts"
msgstr ""
#: ../../source/guides/using_text.rst:390
msgid "The TeX mobject can accept multiple strings as arguments. Afterwards you can refer to the individual parts either by their index (like ``tex[1]``), or by selecting parts of the tex code. In this example, we set the color of the ``\\bigstar`` using :func:`~.set_color_by_tex`:"
msgstr ""
#: ../../source/guides/using_text.rst:404
msgid "Note that :func:`~.set_color_by_tex` colors the entire substring containing the Tex, not just the specific symbol or Tex expression. Consider the following example:"
msgstr ""
#: ../../source/guides/using_text.rst:418
msgid "As you can see, this colors the entire equation yellow, contrary to what may be expected. To color only ``x`` yellow, we have to do the following:"
msgstr ""
#: ../../source/guides/using_text.rst:433
msgid "By setting ``substrings_to_isolate`` to ``x``, we split up the :class:`~.MathTex` into substrings automatically and isolate the ``x`` components into individual substrings. Only then can :meth:`~.set_color_by_tex` be used to achieve the desired result."
msgstr ""
#: ../../source/guides/using_text.rst:438
msgid "Note that Manim also supports a custom syntax that allows splitting a TeX string into substrings easily: simply enclose parts of your formula that you want to isolate with double braces. In the string ``MathTex(r\"{{ a^2 }} + {{ b^2 }} = {{ c^2 }}\")``, the rendered mobject will consist of the substrings ``a^2``, ``+``, ``b^2``, ``=``, and ``c^2``. This makes transformations between similar text fragments easy to write using :class:`~.TransformMatchingTex`."
msgstr ""
#: ../../source/guides/using_text.rst:447
msgid "Using ``index_labels`` to work with complicated strings"
msgstr ""
#: ../../source/guides/using_text.rst:449
msgid "You might sometimes be working with a very complicated :class:`~.MathTex` mobject that makes it difficult to work with its individual components. This is where the debugging function :func:`.index_labels` is very useful."
msgstr ""
#: ../../source/guides/using_text.rst:453
msgid "The method shows the index of a mobject's submobjects, allowing you to easily find the components of the mobject you would like to change."
msgstr ""
#: ../../source/guides/using_text.rst:472
msgid "LaTeX Maths Fonts - The Template Library"
msgstr ""
#: ../../source/guides/using_text.rst:474
msgid "Changing fonts in LaTeX when typesetting mathematical formulae is trickier than regular text. It requires changing the template that is used to compile the TeX. Manim comes with a collection of :class:`~.TexFontTemplates` ready for you to use. These templates will all work in math mode:"
msgstr ""
#: ../../source/guides/using_text.rst:491
msgid "Manim also has a :class:`~.TexTemplateLibrary` containing the TeX templates used by 3Blue1Brown. One example is the ctex template, used for typesetting Chinese script. For this to work, the ctex LaTeX package must be installed on your system. Furthermore, if you are only typesetting Text, you probably do not need :class:`~.Tex` at all, and should use :class:`~.Text` instead."
msgstr ""
#: ../../source/guides/using_text.rst:508
msgid "Aligning formulae"
msgstr ""

View file

@ -7,15 +7,107 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/index.rst:7
msgid "Manim Community Overview"
msgid "Manim Community Edition"
msgstr ""
#: ../../source/index.rst:9
msgid "Animating technical concepts is traditionally pretty tedious since it can be difficult to make the animations precise enough to convey them accurately. Manim relies on Python's simplicity to generate animations programmatically, making it convenient to specify exactly how each one should run. Take a look at the :doc:`Example Gallery <../examples>` for some inspiration on how to create beautiful images and videos with Manim."
msgstr ""
#: ../../source/index.rst:16
#: ../../source/index.rst:17
msgid "First Steps"
msgstr ""
#: ../../source/index.rst:19
msgid "Are you new to Manim and are looking for where to get started? Then you are in the right place!"
msgstr ""
#: ../../source/index.rst:24
msgid "Please be aware that there are different, incompatible versions of Manim available. Check our :ref:`installation FAQ <different-versions>` to learn more!"
msgstr ""
#: ../../source/index.rst:28
msgid "The :doc:`Installation <installation>` section has the latest and up-to-date installation instructions for Windows, MacOS, and Linux. You can also find information on Manim's docker images and (online) notebook environments there."
msgstr ""
#: ../../source/index.rst:32
msgid "Want to try the library before installing it? Take a look at our interactive online playground at https://try.manim.community in form of a Jupyter notebook."
msgstr ""
#: ../../source/index.rst:35
msgid "In our :doc:`Tutorials <tutorials/index>` section you will find a collection of resources that will teach you how to use Manim. In particular, the :doc:`tutorials/quickstart` tutorial teaches you Manim's basics, and in :doc:`tutorials/building_blocks` the classes used to compose your animations are described in more detail."
msgstr ""
#: ../../source/index.rst:43
msgid "Finding Help"
msgstr ""
#: ../../source/index.rst:45
msgid "Are you struggling with installing or using Manim? Don't worry, we've all been there. Here are some good resources to help you out:"
msgstr ""
#: ../../source/index.rst:48
msgid "Perhaps your problem is one that occurs frequently, then chances are it is addressed in our :doc:`collection of FAQs <faq/index>`."
msgstr ""
#: ../../source/index.rst:50
msgid "If you are looking for information on some specific class, look for it in the :doc:`reference manual <reference>` and/or use the search feature of the documentation."
msgstr ""
#: ../../source/index.rst:53
msgid "Still no luck? Then you are welcome to ask the community for help, together we usually manage to find a solution for your problem! Consult the :doc:`FAQ page on getting help <faq/help>` for instructions."
msgstr ""
#: ../../source/index.rst:59
msgid "Navigating the Documentation"
msgstr ""
#: ../../source/index.rst:61
msgid "Here are some short summaries for all of the sections in this documentation:"
msgstr ""
#: ../../source/index.rst:63
msgid "The :doc:`Example Gallery </examples>` is a collection of examples (rendered videos and images together with the code they were generated from) that show a few different, simple things that you can do with Manim."
msgstr ""
#: ../../source/index.rst:66
msgid "The :doc:`Installation </installation>` section has information on installing Manim."
msgstr ""
#: ../../source/index.rst:67
msgid "In :doc:`Tutorials & Guides </tutorials_guides>` you can find learning resources: proper tutorials that guide you through the process of creating a video are in the :doc:`Tutorial </tutorials/index>` section; guides on specific topics are in the :doc:`Guides </guides/index>` section, and the answers to frequently asked questions can be found in the :doc:`FAQ </faq/index>` section."
msgstr ""
#: ../../source/index.rst:72
msgid "The :doc:`Reference Manual </reference>` contains a comprehensive list of all of Manim's (documented) modules, classes, and functions. If you are somewhat familiar with Manim's module structure feel free to browse the manual directly. If you are searching for something specific, feel free to use the documentation's search feature in the sidebar. Many classes and methods come with their own illustrated examples too!"
msgstr ""
#: ../../source/index.rst:77
msgid "The :doc:`Plugins </plugins>` page documents how to install, write, and distribute plugins (that is, separate Python packages that extend the feature set of the core library)."
msgstr ""
#: ../../source/index.rst:79
msgid "Changes between versions are documented in our :doc:`Changelog </changelog>`."
msgstr ""
#: ../../source/index.rst:80
msgid "If you are looking into contributing to the development of Manim, you can find information on how to get involved in our :doc:`Contributing </contributing>` section."
msgstr ""
#: ../../source/index.rst:82
msgid "And finally, the :doc:`Code of Conduct </conduct>` page has a formal description of the rules you should abide by when interacting within our community."
msgstr ""
#: ../../source/index.rst:86
msgid "Sharing Your Work"
msgstr ""
#: ../../source/index.rst:88
msgid "We'd love to hear from you and see your manimations `on Twitter <https://twitter.com/manim_community>`_, `Reddit <https://www.reddit.com/r/manim/>`_, or `Discord <https://www.manim.community/discord/>`_. If you're using Manim in a scientific context, instructions on how to cite a particular release can be found `in our README <https://github.com/ManimCommunity/manim/blob/main/README.md>`_."
msgstr ""
#: ../../source/index.rst:95
msgid "Index"
msgstr ""

View file

@ -19,7 +19,7 @@ msgid "Otherwise, if you intend to use Manim to work on an animation project, we
msgstr ""
#: ../../source/installation.rst:16
msgid "Note that there are several different versions of Manim. The instructions on this website are **only** for the *community edition*. Find out more about the :doc:`differences between Manim versions <installation/versions>` if you are unsure which version you should install."
msgid "Note that there are several different versions of Manim. The instructions on this website are **only** for the *community edition*. Find out more about the :ref:`differences between Manim versions <different-versions>` if you are unsure which version you should install."
msgstr ""
#: ../../source/installation.rst:22
@ -50,47 +50,47 @@ msgstr ""
msgid "Depending on your particular setup, the installation process might be slightly different. Make sure that you have tried to follow the steps on the following pages carefully, but in case you hit a wall we are happy to help: either `join our Discord <https://www.manim.community/discord/>`__, or start a new Discussion `directly on GitHub <https://github.com/ManimCommunity/manim/discussions>`__."
msgstr ""
#: ../../source/installation.rst:59
#: ../../source/installation.rst:58
msgid "Once Manim is installed locally, you can proceed to our :doc:`quickstart guide <tutorials/quickstart>` which walks you through rendering a first simple scene."
msgstr ""
#: ../../source/installation.rst:63
msgid "As mentioned above, do not worry if there are errors or other problems: consult our :doc:`troubleshooting guide <installation/troubleshooting>` for help, or get in touch with the community via `GitHub discussions <https://github.com/ManimCommunity/manim/discussions>`__ or `Discord <https://www.manim.community/discord/>`__."
#: ../../source/installation.rst:62
msgid "As mentioned above, do not worry if there are errors or other problems: consult our :doc:`FAQ section </faq/index>` for help (including instructions for how to ask Manim's community for help)."
msgstr ""
#: ../../source/installation.rst:75
#: ../../source/installation.rst:71
msgid "Using Manim via Docker"
msgstr ""
#: ../../source/installation.rst:77
#: ../../source/installation.rst:73
msgid "`Docker <https://www.docker.com>`__ is a virtualization tool that allows the distribution of encapsulated software environments (containers)."
msgstr ""
#: ../../source/installation.rst:80
#: ../../source/installation.rst:76
msgid "The following pages contain more information about the docker image maintained by the community, ``manimcommunity/manim``:"
msgstr ""
#: ../../source/installation.rst:91
#: ../../source/installation.rst:87
msgid "Interactive Jupyter notebooks for your browser"
msgstr ""
#: ../../source/installation.rst:93
#: ../../source/installation.rst:89
msgid "Manim ships with a built-in ``%%manim`` IPython magic command designed for the use within `Jupyter notebooks <https://jupyter.org>`__. Our interactive tutorial over at https://try.manim.community illustrates how Manim can be used from within a Jupyter notebook."
msgstr ""
#: ../../source/installation.rst:98
#: ../../source/installation.rst:94
msgid "The following pages explain how you can setup interactive environments like that yourself:"
msgstr ""
#: ../../source/installation.rst:108
#: ../../source/installation.rst:104
msgid "Editors"
msgstr ""
#: ../../source/installation.rst:110
#: ../../source/installation.rst:106
msgid "If you're using Visual Studio Code you can install an extension called *Manim Sideview* which provides automated rendering and an integrated preview of the animation inside the editor. The extension can be installed through the `marketplace of VS Code <https://marketplace.visualstudio.com/items?itemName=Rickaym.manim-sideview>`__."
msgstr ""
#: ../../source/installation.rst:117
#: ../../source/installation.rst:113
msgid "Installation for developers"
msgstr ""

View file

@ -1,305 +1 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/installation/troubleshooting.rst:2
msgid "Troubleshooting"
msgstr ""
#: ../../source/installation/troubleshooting.rst:5
msgid "Version incompatibility"
msgstr ""
#: ../../source/installation/troubleshooting.rst:7
msgid "Confusion and conflict between versions is by far the most common reason for installation failures. Some signs and errors resulting from this are as follows:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:11
msgid "``There are no scenes in that module``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:12
msgid "``ModuleNotFoundError: No module named 'manim'``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:13
msgid "``ModuleNotFoundError: No module named 'manimlib'``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:14
msgid "You followed any tutorial created before October 2020 (because the community edition did not exist before then)"
msgstr ""
#: ../../source/installation/troubleshooting.rst:15
msgid "You cloned a repository on GitHub (installation of the community version for normal use does not require the cloning of any repository)"
msgstr ""
#: ../../source/installation/troubleshooting.rst:16
msgid "Different import statements (explained below)"
msgstr ""
#: ../../source/installation/troubleshooting.rst:17
msgid "You used documentation for multiple versions (such as the readme for 3b1b/manim and this documentation)"
msgstr ""
#: ../../source/installation/troubleshooting.rst:20
msgid "As this is the documentation for the community version, we can only help with the installation of this library. If you would like to install other versions of manim, please refer to their documentation."
msgstr ""
#: ../../source/installation/troubleshooting.rst:25
msgid "Identifying files written for a different version of manim"
msgstr ""
#: ../../source/installation/troubleshooting.rst:27
msgid "There are some distinctive features of different versions of manim that can help in identifying what version of manim files are written for:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:31
msgid "Feature"
msgstr ""
#: ../../source/installation/troubleshooting.rst:31
msgid "ManimCE (this version)"
msgstr ""
#: ../../source/installation/troubleshooting.rst:31
msgid "ManimGL"
msgstr ""
#: ../../source/installation/troubleshooting.rst:31
msgid "ManimCairo"
msgstr ""
#: ../../source/installation/troubleshooting.rst:33
msgid "Import statement"
msgstr ""
#: ../../source/installation/troubleshooting.rst:33
msgid "``from manim import *``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:33
msgid "``from manimlib import *``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:33
msgid "``from manimlib.imports import *``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:37
msgid "If you are a beginner, you should only attempt to run files written for your version. Files written for a different version of manim will generally not work without some modification."
msgstr ""
#: ../../source/installation/troubleshooting.rst:42
msgid "Identifying the version you are running"
msgstr ""
#: ../../source/installation/troubleshooting.rst:44
msgid "The community edition of manim should always state `Manim Community <version_number>` as its first line of any command you run."
msgstr ""
#: ../../source/installation/troubleshooting.rst:48
msgid "Identifying and removing conflicting versions of manim"
msgstr ""
#: ../../source/installation/troubleshooting.rst:50
msgid "Within the system or environment you are using to run manim, run the following command in the terminal:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:57
msgid "The correct package for the community edition is simply ``manim``. If you do not see this package listed, please refer back to our installation guide to install it. If you see ``manimlib`` or ``manimce`` (actually an old version of the community edition), you should remove them with:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:68
msgid "If you have cloned a repository from GitHub, you should either remove it or run manim outside that folder."
msgstr ""
#: ../../source/installation/troubleshooting.rst:72
msgid "Other errors"
msgstr ""
#: ../../source/installation/troubleshooting.rst:75
msgid "``pip install manim`` fails when installing manimpango?"
msgstr ""
#: ../../source/installation/troubleshooting.rst:76
msgid "Most likely this means that pip was not able to use our pre-built wheels of ``manimpango``. Let us know (via our `Discord <https://www.manim.community/discord/>`_ or by opening a `new issue on GitHub <https://github.com/ManimCommunity/ManimPango/issues/new>`_) which architecture you would like to see supported, and we'll see what we can do about it."
msgstr ""
#: ../../source/installation/troubleshooting.rst:83
msgid "To fix errors when installing ``manimpango``, you need to make sure you have all the necessary build requirements. Check out the detailed instructions given in `the BUILDING section <https://github.com/ManimCommunity/ManimPango#BUILDING>`_ of the corresponding `GitHub repository <https://github.com/ManimCommunity/ManimPango>`_."
msgstr ""
#: ../../source/installation/troubleshooting.rst:91
msgid "(Windows) OSError: dlopen() failed to load a library: pango?"
msgstr ""
#: ../../source/installation/troubleshooting.rst:93
msgid "This should be fixed in Manim's latest version, update using ``pip install --upgrade manim``."
msgstr ""
#: ../../source/installation/troubleshooting.rst:99
msgid "Some letters are missing from Text/Tex output?"
msgstr ""
#: ../../source/installation/troubleshooting.rst:101
msgid "If you have recently installed TeX you may need to build the fonts it uses. Which can be done by running:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:112
msgid "Installation does not support converting PDF to SVG?"
msgstr ""
#: ../../source/installation/troubleshooting.rst:114
msgid "First, make sure your ``dvisvgm`` version is at least 2.4:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:121
msgid "If you do not know how to update ``dvisvgm``, please refer to your operating system's documentation."
msgstr ""
#: ../../source/installation/troubleshooting.rst:123
msgid "Second, check whether your ``dvisvgm`` supports PostScript specials. This is needed to convert from PDF to SVG."
msgstr ""
#: ../../source/installation/troubleshooting.rst:131
msgid "If the output to this command does **not** contain ``ps dvips PostScript specials``, this is a bad sign. In this case, run"
msgstr ""
#: ../../source/installation/troubleshooting.rst:139
msgid "If the output does **not** contain ``--libgs=filename``, this means your ``dvisvgm`` does not currently support PostScript. You must get another binary."
msgstr ""
#: ../../source/installation/troubleshooting.rst:142
msgid "If, however, ``--libgs=filename`` appears in the help, that means that your ``dvisvgm`` needs the Ghostscript library to support PostScript. Search for ``libgs.so`` (on Linux, probably in ``/usr/local/lib`` or ``/usr/lib``) or ``gsdll32.dll`` (on 32-bit Windows, probably in ``C:\\windows\\system32``) or ``gsdll64.dll`` (on 64-bit Windows, probably in ``c:\\windows\\system32`` -- yes 32) or ``libgsl.dylib`` (on Mac OS, probably in ``/usr/local/lib`` or ``/opt/local/lib``). Please look carefully, as the file might be located elsewhere, e.g. in the directory where Ghostscript is installed."
msgstr ""
#: ../../source/installation/troubleshooting.rst:151
msgid "As soon as you have found the library, try (on Mac OS or Linux)"
msgstr ""
#: ../../source/installation/troubleshooting.rst:158
msgid "or (on Windows)"
msgstr ""
#: ../../source/installation/troubleshooting.rst:166
msgid "You should now see ``ps dvips PostScript specials`` in the output. Refer to your operating system's documentation to find out how you can set or export the environment variable ``LIBGS`` automatically whenever you open a shell."
msgstr ""
#: ../../source/installation/troubleshooting.rst:170
msgid "As a last check, you can run"
msgstr ""
#: ../../source/installation/troubleshooting.rst:176
msgid "while still having ``LIBGS`` set to the correct path, of course. If ``dvisvgm`` can find your Ghostscript installation, it will be shown in the output together with the version number."
msgstr ""
#: ../../source/installation/troubleshooting.rst:180
msgid "If you do not have the necessary library on your system, please refer to your operating system's documentation to find out where you can get it and how you have to install it."
msgstr ""
#: ../../source/installation/troubleshooting.rst:184
msgid "If you are unable to solve your problem, check out the `dvisvgm FAQ <https://dvisvgm.de/FAQ/>`_."
msgstr ""
#: ../../source/installation/troubleshooting.rst:187
msgid "(Windows) ``Python is not recognized as an internal or external command, operable program or batch file.``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:189
msgid "To fix this, you need to add the Python executable to your ``PATH`` environment variable. Follow the steps in `this StackExchange answer <https://superuser.com/questions/143119/how-do-i-add-python-to-the-windows-path/143121#143121>`__."
msgstr ""
#: ../../source/installation/troubleshooting.rst:193
msgid "``choco install manimce`` failed"
msgstr ""
#: ../../source/installation/troubleshooting.rst:195
msgid "If ``choco install manimce`` failed, it is likely being caused by Python not being added to your ``PATH`` variable properly. Try running the following commands in your terminal:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:199
msgid "``py --version``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:200
msgid "``python --version``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:201
msgid "``py3 --version``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:202
msgid "``python3 --version``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:204
msgid "Minimally, ``py --version`` and ``python --version`` should return a version. If none of these commands are recognized, this means that Python was installed on your system, but was not added to PATH. See above for directions to add it to your PATH variable."
msgstr ""
#: ../../source/installation/troubleshooting.rst:209
msgid "If any of these commands opens up the Windows store, this is likely interfering with the process. This is because Chocolatey runs a command that calls python or python3, and opening up the Windows store is not the expected behavior. See below to fix aliases."
msgstr ""
#: ../../source/installation/troubleshooting.rst:216
msgid "(Windows) Fix Aliases"
msgstr ""
#: ../../source/installation/troubleshooting.rst:218
msgid "Go to the Windows Settings."
msgstr ""
#: ../../source/installation/troubleshooting.rst:219
msgid "Under Apps and Features, there are an application execution aliases."
msgstr ""
#: ../../source/installation/troubleshooting.rst:220
msgid "Within this menu disable the alias(es) that is causing the issue (``python`` and/or ``python3``)."
msgstr ""
#: ../../source/installation/troubleshooting.rst:223
msgid "``IndexError: List index out of range``"
msgstr ""
#: ../../source/installation/troubleshooting.rst:225
msgid "Did you install LaTeX using MiKTeX? If so, open the MiKTeX console, install the ``cm-super`` package, then delete the ``media`` directory and try to render the scene again."
msgstr ""
#: ../../source/installation/troubleshooting.rst:230
msgid "Config"
msgstr ""
#: ../../source/installation/troubleshooting.rst:232
msgid "We've dropped the use of CONFIG in the Community Version :doc:`version 0.2.0<../changelog/0.2.0-changelog>`, released in January 2021. This means parameters that were previously specified in the CONFIG dictionary should now be passed directly into the constructor. Practically, this means that old constructions like:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:249
msgid "should now be defined like:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:269
msgid "For scenes, this is even easier:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:276
msgid "becomes:"
msgstr ""
#: ../../source/installation/troubleshooting.rst:286
msgid "A python command does not work"
msgstr ""
#: ../../source/installation/troubleshooting.rst:288
msgid "If a python command does not work, try adding ``python -m`` in front of it. For example, if ``pip install manim`` does not work, you can try ``python -m pip install manim``."
msgstr ""
#: ../../source/installation/troubleshooting.rst:293
msgid "undefined symbol"
msgstr ""

View file

@ -1,69 +1 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/installation/versions.rst:2
msgid "Differences between Manim Versions"
msgstr ""
#: ../../source/installation/versions.rst:4
msgid "While originally a single library, there are now three main versions of manim, each with their own advantages, disadvantages, and ideal use cases. It is important to understand these differences in order to select the best version for your use case and avoid confusion arising from version mismatches."
msgstr ""
#: ../../source/installation/versions.rst:10
msgid "A brief history of Manim"
msgstr ""
#: ../../source/installation/versions.rst:12
msgid "Manim was originally created by Grant Sanderson as a personal project and for use in his YouTube channel, `3Blue1Brown <https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw>`_. As his channel gained popularity, many grew to like the style of his animations and wanted to use manim for their own projects. However, as manim was only intended for personal use, it was very difficult for other users to install and use it."
msgstr ""
#: ../../source/installation/versions.rst:18
msgid "In late 2019, Grant started working on faster OpenGL rendering in a new branch, known as the shaders branch. In mid-2020, a group of developers forked it into what is now the community edition; this is the version documented on this website. In early 2021, Grant merged the shaders branch back into master, making it the default branch in his repository. The old version is still available as the branch ``cairo-backend``."
msgstr ""
#: ../../source/installation/versions.rst:25
msgid "The three versions of Manim"
msgstr ""
#: ../../source/installation/versions.rst:27
msgid "There are currently three main versions of manim. They are as follows:"
msgstr ""
#: ../../source/installation/versions.rst:29
msgid "**ManimCE**: The community edition of manim. This is the version documented by this website, and is named `manim <https://pypi.org/project/manim/>`_ on pip."
msgstr ""
#: ../../source/installation/versions.rst:30
msgid "`ManimGL <https://github.com/3b1b/manim>`_: The current version of manim that is used by 3blue1brown. It supports OpenGL rendering and interactivity, and is named ``manimgl`` on pip. You can find documentation for it `here <https://3b1b.github.io/manim/index.html>`_."
msgstr ""
#: ../../source/installation/versions.rst:31
msgid "`ManimCairo <https://github.com/3b1b/manim/tree/cairo-backend>`_: The old version of manim originally used by 3blue1brown. It is not available on pip."
msgstr ""
#: ../../source/installation/versions.rst:34
msgid "Which version to use"
msgstr ""
#: ../../source/installation/versions.rst:35
msgid "We recommend using the community edition for most purposes, as it has been developed to be more stable, better tested, quicker to respond to community contributions, and easier for beginners to use. It also has partial experimental OpenGL support and should have full support shortly (as of April 2021)."
msgstr ""
#: ../../source/installation/versions.rst:39
msgid "If you would like to use a version with full OpenGL support or render recent 3Blue1Brown videos (2020 onwards), you should use ManimGL."
msgstr ""
#: ../../source/installation/versions.rst:41
msgid "If you would like to render old 3Blue1Brown projects (2019 and before), you should use ManimCairo."
msgstr ""
#: ../../source/installation/versions.rst:44
msgid "Notes on installation, documentation, and use"
msgstr ""

View file

@ -1,17 +1 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/internals.rst:2
msgid "Internal structure"
msgstr ""
#: ../../source/internals.rst:4
msgid "Efforts to document the internal structure of Manim is ongoing on our `wiki <https://github.com/ManimCommunity/manim/wiki/Developer-documentation-(WIP)>`_."
msgstr ""

View file

@ -11,7 +11,7 @@ msgid "Reference Manual"
msgstr ""
#: ../../source/reference.rst:4
msgid "This reference manual details modules, functions, and variables included in Manim, describing what they are and what they do. For learning how to use Manim, see :doc:`tutorials`. For a list of changes since the last release, see the :doc:`changelog`."
msgid "This reference manual details modules, functions, and variables included in Manim, describing what they are and what they do. For learning how to use Manim, see :doc:`tutorials/index`. For a list of changes since the last release, see the :doc:`changelog`."
msgstr ""
#: ../../source/reference.rst:9
@ -26,15 +26,15 @@ msgstr ""
msgid "Animations"
msgstr ""
#: ../../source/reference.rst:37
#: ../../source/reference.rst:38
msgid "Cameras"
msgstr ""
#: ../../source/reference.rst:49
#: ../../source/reference.rst:50
msgid "Mobjects"
msgstr ""
#: ../../source/reference.rst:87
#: ../../source/reference.rst:88
msgid "Scenes"
msgstr ""

View file

@ -50,7 +50,6 @@ msgid "A parser containing any .cfg files in use."
msgstr ""
#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.make_logger:5
#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.set_file_logger:7
msgid "The verbosity level of the logger."
msgstr ""
@ -70,7 +69,6 @@ msgid "Return type"
msgstr ""
#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.make_logger:16
#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.set_file_logger:11
msgid "Notes"
msgstr ""
@ -94,8 +92,4 @@ msgstr ""
msgid "The path to the file is built using ``config.log_dir``."
msgstr ""
#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.set_file_logger:5
msgid "The global config, used to determine the log file path."
msgstr ""

View file

@ -54,50 +54,54 @@ msgid "Examples"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:25
msgid "We use a copy of the global configuration object in the following examples for the sake of demonstration; you can skip these lines and just import ``config`` directly if you actually want to modify the configuration:"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:35
msgid "Each config option allows for dict syntax and attribute syntax. For example, the following two lines are equivalent,"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:34
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:44
msgid "The former is preferred; the latter is provided mostly for backwards compatibility."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:37
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:47
msgid "The config options are designed to keep internal consistency. For example, setting ``frame_y_radius`` will affect ``frame_height``:"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:48
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:58
msgid "There are many ways of interacting with config options. Take for example the config option ``background_color``. There are three ways to change it: via a config file, via CLI flags, or programmatically."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:52
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:62
msgid "To set the background color via a config file, save the following ``manim.cfg`` file with the following contents."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:60
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:70
msgid "In order to have this ``.cfg`` file apply to a manim scene, it needs to be placed in the same directory as the script,"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:69
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:79
msgid "Now, when the user executes"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:75
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:85
msgid "the background of the scene will be set to ``WHITE``. This applies regardless of where the manim command is invoked from."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:78
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:88
msgid "Command line arguments override ``.cfg`` files. In the previous example, executing"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:85
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:95
msgid "will set the background color to BLUE, regardless of the contents of ``manim.cfg``."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:88
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:98
msgid "Finally, any programmatic changes made within the scene script itself will override the command line arguments. For example, if ``scene.py`` contains the following"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:101
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:111
msgid "the background color will be set to RED, regardless of the contents of ``manim.cfg`` or the CLI arguments used when invoking manim."
msgstr ""
@ -196,6 +200,11 @@ msgstr ""
msgid "Enable wireframe debugging mode in opengl."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.ffmpeg_executable:1
msgid "Manually specify the path to the ffmpeg executable"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.ffmpeg_loglevel:1
msgid "Verbosity level of ffmpeg (no flag)."
@ -348,7 +357,7 @@ msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.renderer:1
msgid "\"cairo\", \"opengl\", \"webgl"
msgid "\"cairo\", \"opengl"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
@ -435,11 +444,6 @@ msgstr ""
msgid "Use shaders for OpenGLVMobject stroke which are compatible with transformation matrices."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.use_webgl_renderer:1
msgid "Whether or not to use WebGL renderer."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.verbosity:1
msgid "Logger verbosity; \"DEBUG\", \"INFO\", \"WARNING\", \"ERROR\", or \"CRITICAL\" (-v)."
@ -449,11 +453,6 @@ msgstr ""
msgid "Directory to place videos (no flag)."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.webgl_renderer_path:1
msgid "Path to WebGL renderer."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1:<autosummary>:1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.window_monitor:1
msgid "The monitor on which the scene will be rendered"
@ -597,23 +596,23 @@ msgstr ""
msgid "The value of ``config.tex_dir`` is ``'{media_dir}/Tex'`` by default, i.e. it is a subfolder of wherever ``config.media_dir`` is located. In order to get the *actual* directory, use :meth:`~ManimConfig.get_dir`."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:40
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:41
msgid "Resolving directories is done in a lazy way, at the last possible moment, to reflect any changes in other config options:"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:49
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:50
msgid "Some directories depend on information that is not available to :class:`ManimConfig`. For example, the default value of `video_dir` includes the name of the input file and the video quality (e.g. 480p15). This informamtion has to be supplied via ``kwargs``:"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:64
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:65
msgid "Note the quality does not need to be passed as keyword argument since :class:`ManimConfig` does store information about quality."
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:67
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:68
msgid "Directories may be recursively defined. For example, the config option ``partial_movie_dir`` depends on ``video_dir``, which in turn depends on ``media_dir``:"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:83
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:84
msgid "Standard f-string syntax is used. Arbitrary names can be used when defining directories, as long as the corresponding values are passed to :meth:`ManimConfig.get_dir` via ``kwargs``."
msgstr ""

View file

@ -19,7 +19,7 @@ msgid "The main class exported by this module is :class:`ManimConfig`. This cla
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils:9
msgid "See :doc:`/tutorials/configuration` for an introduction to Manim's configuration system."
msgid "See :doc:`/guides/configuration` for an introduction to Manim's configuration system."
msgstr ""
#: ../../source/reference/manim._config.utils.rst:15

View file

@ -70,23 +70,43 @@ msgstr ""
msgid "For example ``rate_func(0.5)`` is the proportion of the animation that is done after half of the animations run time."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:17
msgid "The name of the animation. This gets displayed while rendering the animation. Defaults to <class-name>(<Mobject-name>)."
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:21
msgid "reverse_rate_function"
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:19
msgid "Whether the given mobject should be removed from the scene after this animation."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:20
msgid "Whether updaters of the mobject should be suspended during the animation."
msgid "Reverses the rate function of the animation. Setting ``reverse_rate_function`` does not have any effect on ``remover`` or ``introducer``. These need to be set explicitly if an introducer-animation should be turned into a remover one and vice versa."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:24
msgid "name"
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:24
msgid "The name of the animation. This gets displayed while rendering the animation. Defaults to <class-name>(<Mobject-name>)."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:26
msgid "remover"
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:27
msgid "Whether the given mobject should be removed from the scene after this animation."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:30
msgid "suspend_mobject_updating"
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:29
msgid "Whether updaters of the mobject should be suspended during the animation."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:34
msgid "In the current implementation of this class, the specified rate function is applied within :meth:`.Animation.interpolate_mobject` call as part of the call to :meth:`.Animation.interpolate_submobject`. For subclasses of :class:`.Animation` that are implemented by overriding :meth:`interpolate_mobject`, the rate function has to be applied manually (e.g., by passing ``self.rate_func(alpha)`` instead of just ``alpha``)."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:33
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:43
msgid "Examples"
msgstr ""
@ -149,9 +169,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.begin:1:<autosummary>:1
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.begin:1:<autosummary>:1
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_introducer:1
msgid "Test if a the animation is an introducer."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.begin:1:<autosummary>:1
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_remover:1
msgid "Test if a the animation is a remover."
msgstr ""
@ -278,6 +301,9 @@ msgid "A float between 0 and 1 expressing the ratio to which the animation is co
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_introducer:3
msgid "``True`` if the animation is an introducer, ``False`` otherwise."
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_remover:3
msgid "``True`` if the animation is a remover, ``False`` otherwise."
msgstr ""

View file

@ -56,14 +56,10 @@ msgstr ""
msgid "Updates things like starting_mobject, and (for Transforms) target_mobject."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.interpolate:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.update_mobjects:0
msgid "Parameters"
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.begin:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.build_animations_with_timings:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:0
@ -74,14 +70,16 @@ msgstr ""
msgid "Return type"
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:3
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.interpolate:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.update_mobjects:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:6
msgid "The scene the animation should be cleaned up from."
msgstr ""

View file

@ -18,8 +18,4 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.composition.AnimationGroup`"
msgstr ""
#: ../../source/reference/manim.animation.composition.LaggedStart.rst:14
msgid "Methods"
msgstr ""

View file

@ -18,12 +18,4 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.composition.LaggedStart`"
msgstr ""
#: ../../source/reference/manim.animation.composition.LaggedStartMap.rst:14
msgid "Methods"
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.LaggedStartMap:0
msgid "Parameters"
msgstr ""

View file

@ -41,13 +41,10 @@ msgstr ""
msgid "Updates things like starting_mobject, and (for Transforms) target_mobject."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.update_mobjects:0
msgid "Parameters"
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.begin:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.finish:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:0
@ -55,10 +52,6 @@ msgstr ""
msgid "Return type"
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.finish:3
msgid "This method gets called when the animation is over."
msgstr ""
@ -67,6 +60,11 @@ msgstr ""
msgid "This method gets called for every frame during an animation."
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.update_mobjects:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:5
msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
msgstr ""

View file

@ -34,8 +34,4 @@ msgstr ""
msgid "This is currently only possible for class:`~.Text` and not for class:`~.MathTex`"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.AddTextLetterByLetter:0
msgid "Return type"
msgstr ""

View file

@ -22,12 +22,4 @@ msgstr ""
msgid "Show a :class:`~.Text` word by word on the scene. Note: currently broken."
msgstr ""
#: ../../source/reference/manim.animation.creation.AddTextWordByWord.rst:14
msgid "Methods"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.AddTextWordByWord:0
msgid "Parameters"
msgstr ""

View file

@ -38,10 +38,6 @@ msgstr ""
msgid "If ``mobject`` is not an instance of :class:`~.VMobject`."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Create:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Create:9
msgid "Examples"
msgstr ""

View file

@ -40,20 +40,15 @@ msgstr ""
msgid "Get all mobjects involved in the animation."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill:0
msgid "Parameters"
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.begin:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.get_all_mobjects:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.get_all_mobjects:3
msgid "Ordering must match the ordering of arguments to interpolate_submobject"
msgstr ""

View file

@ -35,14 +35,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets.interpolate_mobject:0
msgid "Return type"
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -30,10 +30,6 @@ msgstr ""
msgid "If ``mobject`` is not an instance of :class:`~.VMobject`."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowPartial:0
msgid "Parameters"
msgstr ""
#: ../../source/reference/manim.animation.creation.ShowPartial.rst:14
msgid "Methods"
msgstr ""

View file

@ -26,8 +26,4 @@ msgstr ""
msgid "Methods"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowSubmobjectsOneByOne:0
msgid "Parameters"
msgstr ""

View file

@ -0,0 +1,59 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.animation.creation.SpiralIn.rst:2
msgid "SpiralIn"
msgstr ""
#: ../../source/reference/manim.animation.creation.SpiralIn.rst:4
msgid "Qualified name: ``manim.animation.creation.SpiralIn``"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:1
msgid "Bases: :py:class:`manim.animation.animation.Animation`"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:1
msgid "Create the Mobject with sub-Mobjects flying in on spiral trajectories."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:3
msgid "The Mobject on which to be operated."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:4
msgid "The factor used for scaling the effect."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:5
msgid "Fractional duration of initial fade-in of sub-Mobjects as they fly inward."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:8
msgid "Examples"
msgstr ""
#: ../../source/reference/manim.animation.creation.SpiralIn.rst:14
msgid "Methods"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:1:<autosummary>:1
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:1
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -26,12 +26,4 @@ msgstr ""
msgid "Examples"
msgstr ""
#: ../../source/reference/manim.animation.creation.Uncreate.rst:14
msgid "Methods"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Uncreate:0
msgid "Parameters"
msgstr ""

View file

@ -30,10 +30,6 @@ msgstr ""
msgid "Set True to have the animation start erasing from the last submobject first."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Unwrite:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Unwrite:7
msgid "Examples"
msgstr ""

View file

@ -40,18 +40,13 @@ msgstr ""
msgid "Finish the animation."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write:0
msgid "Parameters"
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.begin:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.finish:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""

View file

@ -18,39 +18,43 @@ msgstr ""
msgid "Classes"
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Show a :class:`~.Text` letter by letter on the scene."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Show a :class:`~.Text` word by word on the scene."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Incrementally show a VMobject."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Draw the border first and then show the fill."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Show one submobject at a time, leaving all previous ones displayed on screen."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Abstract class for Animations that show the VMobject partially."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Show one submobject at a time, removing all previously displayed ones from screen."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Create the Mobject with sub-Mobjects flying in on spiral trajectories."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Like :class:`Create` but in reverse."
msgstr ""
#: ../../source/reference/manim.animation.creation.rst:38:<autosummary>:1
#: ../../source/reference/manim.animation.creation.rst:40:<autosummary>:1
msgid "Simulate erasing by hand a :class:`~.Text` or a :class:`~.VMobject`."
msgstr ""

View file

@ -42,10 +42,6 @@ msgstr ""
msgid "The factor by which the mobject is scaled initially before being rescaling to its original size while being faded in."
msgstr ""
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeIn:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeIn:11
msgid "Examples"
msgstr ""

View file

@ -43,11 +43,6 @@ msgstr ""
msgid "The factor by which the mobject is scaled while being faded out."
msgstr ""
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut:0
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut.clean_up_from_scene:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut:10
msgid "Examples"
msgstr ""
@ -69,4 +64,8 @@ msgstr ""
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut.clean_up_from_scene:6
msgid "The scene the animation should be cleaned up from."
msgstr ""

View file

@ -34,10 +34,6 @@ msgstr ""
msgid "Initial color of the arrow before growing to its full size. Leave empty to match arrow's color."
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowArrow:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowArrow:7
msgid "Examples"
msgstr ""

View file

@ -34,10 +34,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromCenter:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromCenter:7
msgid "Examples"
msgstr ""

View file

@ -38,10 +38,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromEdge:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromEdge:8
msgid "Examples"
msgstr ""

View file

@ -38,10 +38,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromPoint:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromPoint:8
msgid "Examples"
msgstr ""

View file

@ -38,10 +38,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.SpinInFromNothing:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.SpinInFromNothing:9
msgid "Examples"
msgstr ""

View file

@ -54,16 +54,8 @@ msgstr ""
msgid "The duration of the animation."
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ApplyWave:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ApplyWave:12
msgid "Examples"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ApplyWave:31
msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
msgstr ""

View file

@ -62,10 +62,6 @@ msgstr ""
msgid "Additional arguments to be passed to the :class:`~.Succession` constructor"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Flash:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Flash:15
msgid "Examples"
msgstr ""

View file

@ -46,10 +46,6 @@ msgstr ""
msgid "Additional arguments to be passed to the :class:`~.Succession` constructor"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.FocusOn:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.FocusOn:11
msgid "Examples"
msgstr ""

View file

@ -46,10 +46,6 @@ msgstr ""
msgid "Additional arguments to be passed to the :class:`~.Succession` constructor"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Indicate:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Indicate:11
msgid "Examples"
msgstr ""

View file

@ -19,19 +19,7 @@ msgid "Bases: :py:class:`manim.animation.composition.Succession`"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowCreationThenFadeOut:1
msgid "Deprecated"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowCreationThenFadeOut:4
msgid "The class ShowCreationThenFadeOut has been deprecated since v0.15.0 and is expected to be removed after v0.16.0. Use Create then FadeOut to achieve this effect."
msgstr ""
#: ../../source/reference/manim.animation.indication.ShowCreationThenFadeOut.rst:14
msgid "Methods"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowCreationThenFadeOut:0
msgid "Parameters"
msgid "Deprecated The class ShowCreationThenFadeOut has been deprecated since v0.15.0 and is expected to be removed after v0.16.0. Use Create then FadeOut to achieve this effect."
msgstr ""

View file

@ -35,11 +35,6 @@ msgstr ""
msgid "The length of the sliver relative to the length of the stroke."
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash:0
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash.clean_up_from_scene:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash:7
msgid "Examples"
msgstr ""
@ -57,4 +52,8 @@ msgstr ""
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash.clean_up_from_scene:6
msgid "The scene the animation should be cleaned up from."
msgstr ""

View file

@ -54,10 +54,6 @@ msgstr ""
msgid "The duration of the animation"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Wiggle:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Wiggle:13
msgid "Examples"
msgstr ""

View file

@ -42,6 +42,10 @@ msgstr ""
msgid "Indicate a Mobject by temporarily resizing and recoloring it."
msgstr ""
#: ../../source/reference/manim.animation.indication.rst:36:<autosummary>:1
msgid "Deprecated"
msgstr ""
#: ../../source/reference/manim.animation.indication.rst:36:<autosummary>:1
msgid "Show only a sliver of the VMobject each frame."
msgstr ""

View file

@ -22,12 +22,4 @@ msgstr ""
msgid "Complex Homotopy a function Cx[0, 1] to C"
msgstr ""
#: ../../source/reference/manim.animation.movement.ComplexHomotopy.rst:14
msgid "Methods"
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.ComplexHomotopy:0
msgid "Parameters"
msgstr ""

View file

@ -19,15 +19,39 @@ msgid "Bases: :py:class:`manim.animation.animation.Animation`"
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:1
msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
msgid "A Homotopy."
msgstr ""
#: ../../source/reference/manim.animation.movement.Homotopy.rst:14
msgid "Methods"
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:3
msgid "This is an animation transforming the points of a mobject according to the specified transformation function. With the parameter :math:`t` moving from 0 to 1 throughout the animation and :math:`(x, y, z)` describing the coordinates of the point of a mobject, the function passed to the ``homotopy`` keyword argument should transform the tuple :math:`(x, y, z, t)` to :math:`(x', y', z')`, the coordinates the original point is transformed to at time :math:`t`."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:11
msgid "A function mapping :math:`(x, y, z, t)` to :math:`(x', y', z')`."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:12
msgid "The mobject transformed under the given homotopy."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:13
msgid "The run time of the animation."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:14
msgid "Keyword arguments propagated to :meth:`.Mobject.apply_function`."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:15
msgid "Further keyword arguments passed to the parent class."
msgstr ""
#: ../../source/reference/manim.animation.movement.Homotopy.rst:14
msgid "Methods"
msgstr ""

View file

@ -31,14 +31,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath:0
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath:0
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath.interpolate_mobject:0
msgid "Return type"
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow:0
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow:0
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow.interpolate_mobject:0
msgid "Return type"
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -18,10 +18,6 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.movement.Homotopy`"
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.SmoothedVectorizedHomotopy:1
msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
msgstr ""
#: ../../source/reference/manim.animation.movement.SmoothedVectorizedHomotopy.rst:14
msgid "Methods"
msgstr ""

View file

@ -23,8 +23,7 @@ msgid "Complex Homotopy a function Cx[0, 1] to C"
msgstr ""
#: ../../source/reference/manim.animation.movement.rst:28:<autosummary>:1
#: ../../source/reference/manim.animation.movement.rst:28:<autosummary>:1
msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
msgid "A Homotopy."
msgstr ""
#: ../../source/reference/manim.animation.movement.rst:28:<autosummary>:1

View file

@ -18,12 +18,4 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.numbers.ChangingDecimal`"
msgstr ""
#: ../../source/reference/manim.animation.numbers.ChangeDecimalToValue.rst:14
msgid "Methods"
msgstr ""
#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangeDecimalToValue:0
msgid "Parameters"
msgstr ""

View file

@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal:0
#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal:0
#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal.interpolate_mobject:0
msgid "Return type"
#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -46,10 +46,6 @@ msgstr ""
msgid "If ``about_point``is ``None``, this argument specifies the direction of the bounding box point to be taken as the rotation center."
msgstr ""
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotate:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotate:12
msgid "Examples"
msgstr ""

View file

@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating:0
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating:0
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating.interpolate_mobject:0
msgid "Return type"
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -0,0 +1,144 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:2
msgid "ChangeSpeed"
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:4
msgid "Qualified name: ``manim.animation.speedmodifier.ChangeSpeed``"
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:1
msgid "Bases: :py:class:`manim.animation.animation.Animation`"
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:1
msgid "Modifies the speed of passed animation. :class:`AnimationGroup` with different ``lag_ratio`` can also be used which combines multiple animations into one. The ``run_time`` of the passed animation is changed to modify the speed."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.update_mobjects:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:6
msgid "Animation of which the speed is to be modified."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:7
msgid "Contains nodes (percentage of ``run_time``) and its corresponding speed factor."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:8
msgid "Overrides ``rate_func`` of passed animation, applied before changing speed."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:11
msgid "Examples"
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:14
msgid "Methods"
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27:<autosummary>:1
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:1
msgid "This static method can be used to apply speed change to updaters."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27:<autosummary>:1
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.begin:1
msgid "Begin the animation."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27:<autosummary>:1
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:1
msgid "Clean up the :class:`~.Scene` after finishing the animation."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27:<autosummary>:1
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.finish:1
msgid "Finish the animation."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27:<autosummary>:1
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.get_scaled_total_time:1
msgid "The time taken by the animation under the assumption that the ``run_time`` is 1."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27:<autosummary>:1
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:1
msgid "Set the animation progress."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27:<autosummary>:1
msgid "Updates things like starting_mobject, and (for Transforms) target_mobject."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:29
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:3
msgid "This updater will follow speed and rate function of any :class:`.ChangeSpeed` animation that is playing with ``affects_speed_updaters=True``. By default, updater functions added via the usual :meth:`.Mobject.add_updater` method do not respect the change of animation speed."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:8
msgid "The mobject to which the updater should be attached."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:9
msgid "The function that is called whenever a new frame is rendered."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:10
msgid "The position in the list of the mobject's updaters at which the function should be inserted."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:12
msgid "If ``True``, calls the update function when attaching it to the mobject."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.begin:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.finish:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.get_scaled_total_time:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:0
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.update_mobjects:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:3
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:6
msgid "The scene the animation should be cleaned up from."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.finish:3
msgid "This method gets called when the animation is over."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:3
msgid "This method gets called for every frame during an animation."
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:5
msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
msgstr ""

View file

@ -0,0 +1,21 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.animation.speedmodifier.rst:2
msgid "speedmodifier"
msgstr ""
#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier:1
msgid "Utilities for modifying the speed at which animations are played."
msgstr ""
#: ../../source/reference/manim.animation.speedmodifier.rst:15
msgid "Classes"
msgstr ""

View file

@ -26,8 +26,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyComplexFunction:0
msgid "Parameters"
msgstr ""

View file

@ -26,8 +26,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyFunction:0
msgid "Parameters"
msgstr ""

View file

@ -42,10 +42,6 @@ msgstr ""
msgid "Further keyword arguments that are passed to :class:`ApplyPointwiseFunction`."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyMatrix:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyMatrix:9
msgid "Examples"
msgstr ""

View file

@ -42,10 +42,6 @@ msgstr ""
msgid "Any keyword arguments passed to :class:`~.Transform`."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyMethod:0
msgid "Return type"
msgstr ""
#: ../../source/reference/manim.animation.transform.ApplyMethod.rst:14
msgid "Methods"
msgstr ""

View file

@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunction:0
msgid "Parameters"
msgstr ""

View file

@ -31,13 +31,8 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter.begin:0
msgid "Return type"
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""

View file

@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ClockwiseTransform:0
msgid "Parameters"
msgstr ""

View file

@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.CounterclockwiseTransform:0
msgid "Parameters"
msgstr ""

View file

@ -26,8 +26,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.CyclicReplace:0
msgid "Parameters"
msgstr ""

View file

@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.FadeToColor:0
msgid "Parameters"
msgstr ""

View file

@ -38,8 +38,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.MoveToTarget:0
msgid "Parameters"
msgstr ""

View file

@ -38,10 +38,6 @@ msgstr ""
msgid "Further keyword arguments that are passed to :class:`Transform`."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ReplacementTransform:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ReplacementTransform:8
msgid "Examples"
msgstr ""

View file

@ -38,8 +38,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Restore:0
msgid "Parameters"
msgstr ""

View file

@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ScaleInPlace:0
msgid "Parameters"
msgstr ""

View file

@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ShrinkToCenter:0
msgid "Parameters"
msgstr ""

View file

@ -18,6 +18,63 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.animation.Animation`"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:1
msgid "A Transform transforms a Mobject into a target Mobject."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:3
msgid "The :class:`.Mobject` to be transformed. It will be mutated to become the ``target_mobject``."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:4
msgid "The target of the transformation."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:5
msgid "A function defining the path that the points of the ``mobject`` are being moved along until they match the points of the ``target_mobject``, see :mod:`.utils.paths`."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:7
msgid "The arc angle (in radians) that the points of ``mobject`` will follow to reach the points of the target if using a circular path arc, see ``path_arc_centers``. See also :func:`manim.utils.paths.path_along_arc`."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:10
msgid "The axis to rotate along if using a circular path arc, see ``path_arc_centers``."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:11
msgid "The center of the circular arcs along which the points of ``mobject`` are moved by the transformation. If this is set and ``path_func`` is not set, then a ``path_along_circles`` path will be generated using the ``path_arc`` parameters and stored in ``path_func``. If ``path_func`` is set, this and the other ``path_arc`` fields are set as attributes, but a ``path_func`` is not generated from it."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:11
msgid "The center of the circular arcs along which the points of ``mobject`` are moved by the transformation."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:14
msgid "If this is set and ``path_func`` is not set, then a ``path_along_circles`` path will be generated using the ``path_arc`` parameters and stored in ``path_func``. If ``path_func`` is set, this and the other ``path_arc`` fields are set as attributes, but a ``path_func`` is not generated from it."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:17
msgid "Controls which mobject is replaced when the transformation is complete. If set to True, ``mobject`` will be removed from the scene and ``target_mobject`` will replace it. Otherwise, ``target_mobject`` is never added and ``mobject`` just takes its shape."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:17
msgid "Controls which mobject is replaced when the transformation is complete."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:19
msgid "If set to True, ``mobject`` will be removed from the scene and ``target_mobject`` will replace it. Otherwise, ``target_mobject`` is never added and ``mobject`` just takes its shape."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:23
msgid "Examples"
msgstr ""
#: ../../source/reference/manim.animation.transform.Transform.rst:14
msgid "Methods"
msgstr ""
@ -41,22 +98,16 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:0
msgid "Parameters"
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.begin:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.get_all_mobjects:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.begin:3
msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:3
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""

View file

@ -31,18 +31,16 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:3
msgid "This method gets called for every frame during an animation."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:5
msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
msgstr ""

View file

@ -35,18 +35,16 @@ msgstr ""
msgid "Attributes"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:0
msgid "Return type"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:3
msgid "This method gets called for every frame during an animation."
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:5
msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
msgstr ""

View file

@ -70,4 +70,8 @@ msgstr ""
msgid "Animation that makes a mobject shrink to center."
msgstr ""
#: ../../source/reference/manim.animation.transform.rst:60:<autosummary>:1
msgid "A Transform transforms a Mobject into a target Mobject."
msgstr ""

View file

@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo:0
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo:0
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo.interpolate_mobject:0
msgid "Return type"
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -31,14 +31,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc:0
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc.interpolate_mobject:0
msgid "Parameters"
msgstr ""
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc:0
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc.interpolate_mobject:0
msgid "Return type"
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc.interpolate_mobject:3
msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""

View file

@ -1,45 +1 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:2
msgid "CameraFrame"
msgstr ""
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:4
msgid "Qualified name: ``manim.camera.moving\\_camera.CameraFrame``"
msgstr ""
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.CameraFrame:1
msgid "Bases: :py:class:`manim.mobject.types.vectorized_mobject.VGroup`"
msgstr ""
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:14
msgid "Methods"
msgstr ""
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:21
msgid "Attributes"
msgstr ""
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32:<autosummary>:1
msgid "Used to animate the application of any method of :code:`self`."
msgstr ""
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32:<autosummary>:1
msgid "The depth of the mobject."
msgstr ""
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32:<autosummary>:1
msgid "If there are multiple colors (for gradient) this returns the first one"
msgstr ""
#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32:<autosummary>:1
msgid "The height of the mobject."
msgstr ""

View file

@ -90,6 +90,10 @@ msgstr ""
msgid "If set to ``True``, only allows focusing on mobjects that are already in frame."
msgstr ""
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:12
msgid "If set to ``False``, applies the changes instead of returning the corresponding animation"
msgstr ""
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:0
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.frame_center:0
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.frame_height:0
@ -97,8 +101,8 @@ msgstr ""
msgid "Returns"
msgstr ""
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:13
msgid "Returns an animation that zooms the camera view to a given list of mobjects."
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:14
msgid "_AnimationBuilder that zooms the camera view to a given list of mobjects or ScreenRectangle with position and size updated to zoomed position."
msgstr ""
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:0

View file

@ -1,75 +1 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.mobject.geometry.arc.rst:2
msgid "arc"
msgstr ""
#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:1
msgid "Mobjects that are curved."
msgstr ""
#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:4
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:0
msgid "Examples"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:15
msgid "Classes"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A dot with bigger radius and bold stroke to annotate scenes."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:0
msgid "param inner_radius"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "The inside radius of the Annular Sector."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "Region between two concentric :class:`Circles <.Circle>`."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circular arc."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "Inherits from Arc and additionally takes 2 points between which the arc is spanned."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A generalized polygon allowing for points to be connected with arcs."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circle."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:0
msgid "Example"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circle with a very small radius."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circular shape; oval, circle."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A :class:`Dot` containing a label in its center."
msgstr ""

View file

@ -1,49 +1 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.mobject.geometry.line.rst:2
msgid "line"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line:1
msgid "Mobjects that are lines or variations of them."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:15
msgid "Classes"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "A circular arc or elbow-type mobject representing an angle of two lines."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "An arrow."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "A dashed :class:`Line`."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "An arrow with tips on both ends."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "Two lines that create a right angle about each other: L-shape."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "An elbow-type mobject representing a right angle between two lines."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "Constructs a line tangent to a :class:`~.VMobject` at a specific point."
msgstr ""

View file

@ -1,57 +1 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.mobject.geometry.polygram.rst:2
msgid "polygram"
msgstr ""
#: ../../../manim/mobject/geometry/polygram.py:docstring of manim.mobject.geometry.polygram:1
msgid "Mobjects that are simple geometric shapes."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:15
msgid "Classes"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A shape with smaller cutouts."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A shape consisting of one closed loop of vertices."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A generalized :class:`Polygon`, allowing for disconnected sets of edges."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A quadrilateral with two sets of parallel sides."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "An n-sided regular :class:`Polygon`."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A :class:`Polygram` with regularly spaced vertices."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A rectangle with rounded corners."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A rectangle with equal side lengths."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.polygram.rst:38:<autosummary>:1
msgid "A regular polygram without the intersecting lines."
msgstr ""

View file

@ -0,0 +1,75 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.mobject.geometry.arc.rst:2
msgid "arc"
msgstr ""
#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:1
msgid "Mobjects that are curved."
msgstr ""
#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:4
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:0
msgid "Examples"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:15
msgid "Classes"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A dot with bigger radius and bold stroke to annotate scenes."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:0
msgid "param inner_radius"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "The inside radius of the Annular Sector."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "Region between two concentric :class:`Circles <.Circle>`."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circular arc."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "Inherits from Arc and additionally takes 2 points between which the arc is spanned."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A generalized polygon allowing for points to be connected with arcs."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circle."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:0
msgid "Example"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circle with a very small radius."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A circular shape; oval, circle."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.arc.rst:50:<autosummary>:1
msgid "A :class:`Dot` containing a label in its center."
msgstr ""

View file

@ -23,6 +23,7 @@ msgid "A circular arc or elbow-type mobject representing an angle of two lines."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:0
msgid "Parameters"
msgstr ""
@ -72,6 +73,7 @@ msgid "Further keyword arguments that are passed to the constructor of :class:`A
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle:30
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:15
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:7
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:9
msgid "Examples"
@ -85,54 +87,85 @@ msgstr ""
msgid "Methods"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:21:<autosummary>:1
#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:22:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1
msgid "The angle between the lines AB and BC."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:22:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1
msgid "Get the lines forming an angle of the :class:`Angle` class."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:21:<autosummary>:1
#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:22:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:1
msgid "Get the value of an angle of the :class:`Angle` class."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:23
#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:24
msgid "Attributes"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1:<autosummary>:1
msgid "Used to animate the application of any method of :code:`self`."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1:<autosummary>:1
msgid "The depth of the mobject."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1:<autosummary>:1
msgid "If there are multiple colors (for gradient) this returns the first one"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1:<autosummary>:1
msgid "The height of the mobject."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1:<autosummary>:1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1:<autosummary>:1
msgid "The width of the mobject."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:3
msgid "This constructs the angle :math:`\\angle ABC`."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:5
msgid "The endpoint of the first angle leg"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:6
msgid "The vertex of the angle"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:7
msgid "The endpoint of the second angle leg"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:8
msgid "Further keyword arguments are passed to :class:`.Angle`"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:0
msgid "Returns"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:3
msgid "A :class:`~.VGroup` containing the lines that form the angle of the :class:`Angle` class."
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:10
msgid "Angle(line1, line2, radius=0.5, quadrant=(-1,1), stroke_width=8), Angle(line1, line2, radius=0.7, quadrant=(-1,-1), color=RED, other_angle=True),"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:0
msgid "Return type"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:3
msgid "A :class:`~.VGroup` containing the lines that form the angle of the :class:`Angle` class."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:3
msgid "A boolean to decide the unit (deg/rad) in which the value of the angle is returned."
msgstr ""

View file

@ -0,0 +1,49 @@
msgid ""
msgstr ""
"Project-Id-Version: Manim \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/reference/manim.mobject.geometry.line.rst:2
msgid "line"
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line:1
msgid "Mobjects that are lines or variations of them."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:15
msgid "Classes"
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "A circular arc or elbow-type mobject representing an angle of two lines."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "An arrow."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "A dashed :class:`Line`."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "An arrow with tips on both ends."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "Two lines that create a right angle about each other: L-shape."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "An elbow-type mobject representing a right angle between two lines."
msgstr ""
#: ../../source/reference/manim.mobject.geometry.line.rst:36:<autosummary>:1
msgid "Constructs a line tangent to a :class:`~.VMobject` at a specific point."
msgstr ""

Some files were not shown because too many files have changed in this diff Show more