* Add SVG elliptical arc support to svg_path.py
* Add SVG support for elliptical arcs
* Add debug fixes from Mark Miller. Add sweep limit case for elliptical arcs that are multiple of 90 degrees.
* Add unit test for SVG elliptical arcs. Add control data.
* Cast type of stroke_width if it is string.
* Fix black and isort.
* coordinate_systems.py
* number_line.py
* functions.py
* forgot to remove logging
* remove mutables in UnitInterval and restore things that shouldn't have been factored out
* visual changes + add backup in case only two args are given to x_range
* test_axes.py test reworked
* test_axes.py add tips
* coordinate_system + systems test and minor update to .py
* test_functions and mini-rework of funtions.py
* black and graph_scene test
* add defaults for threeDaxes
* all tests pass, threed updates
* make graphscene functional
* formatting
* test_axes_shift fix
* fix the broken test_axes_shift and docs
* forgot negative in docs
* missing commas
* fix broken example in graphscene.py
* forgot comma... again
* line_projection, import cleanup, and variable cleanup
* get_tick_range all numbers
* revert examples.rst
* restore GraphScene, deprecate it, introduce OldNumberLine
* rever test_axes_shift.py
* test_graphscene_reverted
* poetry error
* test_coord_system fix (?)
* unecssary import in graphscene
* black
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix tests (?)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add rounding for default coord_range + projection docs
* adjust test for rounding
* add zero fix
* used wrong fix
* set_length instead of rescale_to_fit
* fix improper coordinates for default NumberPlane
* update test
* adjust defaults for NumberLine and introduce dynamic scaling
* test adjusted
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* explanations + create axis docs
* parameters for NumberLine`
* NumberPlane documentation mods
* ThreeDAxes docs
* all done
* add colon for docs
* switch oldNUmberLine to NumberLineOld
* docs update for NumberLineOld
* Update manim/mobject/number_line.py
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* Update manim/mobject/number_line.py
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* Update manim/mobject/number_line.py
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* suggestions from code review
* missing period
* adjust wording for create_axis
* fix merge conflict (?)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* test
* revert test changes
* Add Circumscribe, Deprecate others
Depreated:
AnimationOnSurroundingRectangle
ShowPassingFlashAround
ShowCreationThenDestructionAround
ShowCreationThenFadeAround
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add example and docs to Circumscribe
* Docs & Example FocusOn
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Docs & Example Indicate
* Fix Flash not using the given stroke_width
* Change the meaning of flash_radius to the inner radius
* Adjust flash_radius accordingly
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix runtime not working and add time_width to Flash
* finish Flash
* add second example to Flash
* Deprecate CircleIndicate
* Finish ShowPassingFlash
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Rework ApplyWave & Docs & Examples
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Finish Wiggle
* Fix docs inconsistancies
* black
* Add overview example
* fixe flake8 error
* Renew Test Data
* fix test scene
* try to fix test circumscribe problem
* tests behave weird...
* test without circumscribe
* add new test to circumscribe
* Explain wave code
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Removed already done TODO
* Change circumscribe to require shape to be a type
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Restart CI
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* Rudimentary polyhedra class
* Move to own file + more polyhedra
* Icosahedron
* More polyhedra and renaming to singular form
* Changes
* Revert changes to graph
* Fix put_start_and_end_on and attempt to add updaters
* Update polyhedra.py
* Try to fix updaters
* Fix attempts
* more attempts
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* More attempts
* I got it to work
* side_length -> edge_length, start doc string
* More docs
* edge_length type hint and **kwargs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Docs title
* Config, docs
* Submobject docs
* Basic examples for the platonic solids
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Tests, black, rm personal test file
* Make pytest work properly
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Try to fix formatting
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Adding information about polyhedra
* Rm unused imports
* Actually finish the comment
* Apply suggestions from code review
Co-authored-by: Naveen M K <naveen@syrusdark.website>
Co-authored-by: kolibril13 <44469195+kolibril13@users.noreply.github.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Type hints for edge_length
* change faces_list type hint
* More typehints
* More typehints
* get_edges return type
* Type hint
* Replace Union[float, int] with float
* Fix typehints and attempt to fix tests
* Import dict from typehints
* Try to fix tests
* Fix typehint for mobject
* Conditional import and vgroup type hint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Import type_checking
* Retrigger
* Update manim/mobject/polyhedra.py
Co-authored-by: Naveen M K <naveen@syrusdark.website>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: kilacoda <65204531+kilacoda@users.noreply.github.com>
Co-authored-by: Naveen M K <naveen@syrusdark.website>
Co-authored-by: kolibril13 <44469195+kolibril13@users.noreply.github.com>
* Use built in numpy functions and better angle_between_vectors
* Deleted angle_between since it duplicates the functionality of angle_between_vectors and isn't used anywhere
* Black
* Rewrite put_start_and_end_on to work in 3D
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix imports
* Fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Try to fix tests
* Try to fix tests
* Update geometry.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Try fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix attempt
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Try to fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Trying to fix AGAIN
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* evil hacking fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Retrigger checks
* Added test
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Regenerate test data with Dot3D
* Readd angle_between
* Fix imports
* revert back to default vertex type for test
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* Add SVG <line> element support
* Add support for SVG <line> elements to SVGMobject
* Add unit test, unit test SVG file, and unit test data file
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
Co-authored-by: Mark Miller <725mrm@gmail.com>
* test
* revert test changes
* Rework Brace to use SVG (#1258)
* change import order
* make import relative
* add graphics unit tests
* black tests
* Try to fix flake problem
Co-authored-by: kilacoda <65204531+kilacoda@users.noreply.github.com>
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* Adds support for specifying the interpolation algorithms for individual ImageMobjects.
* Remove setup.py
* Added a proper unit test
* Code formatting
* Adds Doc string
* Test rewritten by kolibril13
* Added control data to the test
* Replaces string resampling constants with Pillow integers; renames the constants into o 'resampling algorithms'
* Final 'nitpicks'
* ValueError update
* update example
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: kolibril13 <44469195+kolibril13@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Display image instead if attempting to make movie file with no animations
* update
* logging warnings added
* small fixes
* Fix broken test, add suggestions
* ignore skipping if scene finished
* fixes + replace self.play(Anim.. with self.add()
* dummy commit
* explicitly set write_to_movie in manim_directive
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* Set corners of Rectangle in counterclockwise direction
* Update test data for RoundedRectangle
* Update test data for HomotopyTest
* Update test data for MoveAlongPathTest
* Update data for Cube related tests
* Fix failing doctest
* add simple circle test for opengl
* literally a comma
* add rgb tolerance to graphical unit tester
* start up xvfb on ubuntu?
* black style
* reduce tolerance to pixel ?
* add msys2 action
* add mesa install
* ci: windows add msys2 to path
Compile moderngl from source
add a init tests for CI to work
add colour to pytest
* minor edits
* mild refactor of scene / camera / renderer relationship
* flake-d
* reverted refactor
* reverted opengl split at the level of graphical unit tester
* remove unnecessary config in definition
* CI: remove python3 from MSYS2 also
Co-authored-by: Naveen M K <naveen@syrusdark.website>
* Added Dot3D and SmallDot3D
* Remove wrong test data
* Revert changes to graphical units template
* Remove SmallDot3D per consensus
* Apply suggestions from code review
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* Fix unclosed docstring
* Fix Dot3D
* Attempt to fix linting
* Revert "Attempt to fix linting"
This reverts commit 6c23d653b4.
* Retrigger checks
* Add example
* Update three_dimensions.py
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
Co-authored-by: WampyCakes <WampyCakes@users.noreply.github.com>
* fix - in handle_transforms, add the support to parse multiple transforms from one attribute value
* further refactor the handle_transform; add a test svg with multiple transforms
* correction to the function doc regarding supported transforms
* fix the typo in the test name
* add tests for rotate, skewX & skewY transforms and emit a warning message that they are not supported yet
* add tests for translate, matrix and scale transforms / fix the handling of translate transform
* Deprecated ShowCreation in favor of Create
* Fixed Black formatting and logger error
* Fixed relative import issue of logger
* Renamed CreateThen.. calls to previous names
* Fixed __all__ classes, fixed Create inheritance
* Update manim/animation/creation.py
Move logger warning to class initializer
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* Add function to update a dict recursively with other dicts
* Refactor Axes and NumberPlane
* Fix NumberLine's rotation
* Rotate NumberLine just before adding numbers
* More refactoring
* Add graphical unit test to NumberPlane
* More cleanup and fix range attributes issue(#840)
* Remove overlooked print statements and run black
* Make graphical unit test of NumberPlane more robust
* Shift z_axis to XY-plane's origin and minor refactor in its rotation
* Apply review suggestions
* refactor svg def to store element references instead of mobjects
* Refactor svg defaults to parsing instead of cascading
* Break up style attribute before cascading
* add tag inheritance SVG test
* black styling
* MarkupText: Deprecate <color> tag and use <span foreground> instead
* Typo in docstring
* Update examples and docs for MarkupText
* Fix errors in MarkupText examples
* Fixed one more error in the docs
* Improved documentation for MarkupText
* underline_color is now supported
* overline and overline_color are now working
* strikethrough and strikethrough_color are now working
* additional examples for those features
* Fix for docs build
* Use existing logger.
* revisions from feedback set 1
* delete style from cascading attributes again (it is parsed but not cascaded)
* Reinterpret stroke=none as stroke-width=0 and opacity=1
* Update use tag test to handle two more cases
Co-authored-by: Philipp Imhof <52650214+PhilippImhof@users.noreply.github.com>
* Added new 3D mobjects: mostly taken from dor2727's previous incomplete PR
* Added Torus from 3b1b manim
* Added tests
* Remove personal test file
* Ran black
* Added test for Arrow3D
* Apply suggestions from code review
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* Black formatting
* Added documentation, tests failing?
* Added documentation, tests fixed
* Rename self.height to self._height
* Removed unnecessary property.
* Fixed tests
* Apply suggestions from code review
Co-authored-by: friedkeenan <friedkeenan@protonmail.com>
* Black
* Apply suggestions from code review
Simple changes for now
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* Apply suggestions from code review
Possibly breaking changes
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
Co-authored-by: friedkeenan <friedkeenan@protonmail.com>
* Update manim/mobject/three_dimensions.py
Fix indentation
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* Update manim/mobject/three_dimensions.py
Fix indentation
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* Fix things
* Change parameter names for Torus
* Added get_direction method for Cylinder and fixed direction setting
* retrigger checks
* Update manim/mobject/three_dimensions.py
remove dead comment
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
Co-authored-by: friedkeenan <friedkeenan@protonmail.com>
* added many svg test images
* Added test for the Rhomboid
* Fixed multi-point lists of L type
* Two more svg files
* Also ignore pycharm-specific project information
* Allow skipping of tests with a pytest_skip class attribute
* Stubbed a couple tests out before rewrite
* Rewrite of SVG path midlayer
* refactored old test name
* Added tests for two more files
* Bugfix for absolute H/V paths
* small refactor of cubics
* Enabled correct quadratic bezier functionality.
* Black formatting
* Test the SVG smoothed curves (S and T)
* handful more tests
* Add all Discord svg tests
* Update manim/mobject/types/vectorized_mobject.py
Co-authored-by: Leo Torres <dleonardotn@gmail.com>
* Apply suggestions from code review 1
Co-authored-by: Leo Torres <dleonardotn@gmail.com>
* Remove files of questionable origin
* rolled back review change due to ValueError
* Added entries from the SVG Support github project
* smaller fixes from review #1
* Enabled fill and stroke.
* Troubles with the use of "currentcolor" - for now we wont support it
* Minimize visual effect of downstream changes on Tex
* Style changes ordered by Black
* fixed background opacity handling
* enable coloring of circles
* Remove periodic table test (requires text)
* Update documentation
* refactored bare exception catch
* Rolling back the pytest_skip functionality
* Document some less obvious unit tests
* fixing leo's rec
* edit to penrose triangle test
* Don't copy the list, copy the objects in the list.
* black styling
* Include defs in tree parsing
* Update default svg values for visibility in test.
* black formatting
* Interpret RGB percentages
* mild fix to for btd rebuild.
* Force family update for classes that inherit SVGMobjects in order to preserve behavior.
* Apply suggestions from code review 2
Co-authored-by: Naveen M K <naveen@syrusdark.website>
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* make static parsing methods into object methods, and add typing
* Add typing to use_to_mobject which misled me earlier, and fix documentation merge error
* Apply suggestions from code review 3
Co-authored-by: Naveen M K <naveen@syrusdark.website>
* black fix
* add types for quadratic bezier
* prevent fail after matrix transform
* Add UK Flag Test
* black style
* remove DEFAULT SVG STYLE and converted to inline argument.
* Remove useless comments.
* Refactor svg_mobject.py into multiple files.
* documentation and typings
* black styling
* allow floats in rgb pct specification
* parse floats like 2.4.3 into 2.4 0.3, with test
* update typing for SUPPORTED_STYLING_ATTRIBUTES
Co-authored-by: Naveen M K <naveen@syrusdark.website>
* forgot import List from typings
Co-authored-by: Leo Torres <dleonardotn@gmail.com>
Co-authored-by: Naveen M K <naveen@syrusdark.website>
Co-authored-by: Jason Villanueva <a@jsonvillanueva.com>
* Fix x_min, x_max and color of FunctionGraph
* Add graphical unit test to FunctionGraph
* Apply review suggestions
* Pass color as argument instead of updating kwargs and run black
* fixes#946
* updated default values for pointCloud
* fix overlap in the pointCloud
* added tests
* run my buddy black
* adressed suggestions
Co-authored-by: Hugues Devimeux <hugues.devimeux@gmail.com>
* Allow for chaining _AnimationBuilder
* Add _AnimationBuilder.build()
* Apply docs patch
* fix play call with multiple .animate for the same mobject
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
* toying around with a graph using networkx layouting
* basic implementation and documentation of a class for undirected graphs
* import graph module into global namespace
* add graph module to documentation
* poetry: add networkx as a dependency
* remove some debug prints
* sort all extracted mobjects w.r.t. z_index
* add test for z_index (from #327)
* more complex z_index test
* black
* improve imports
* use z_index to have edges below vertices
* add type hints
* rename some tests to make space for graph tests
* fix problem with manual positioning
* add test
* black
* new animate syntax
* document label_fill_color
* Fix --use_js_renderer and create JsRenderer
* In need of an abstract method for saving static frame data
* Barebones js renderer with no effect
* Restore simple JS functionality
* Preparing to send frame data to JS
* Restore progress after merge
* Restore ability to play animations
* Properly set wait duration
* Pass animation_offset to JS
* Allow for playing a range of animations
* Update RPCs
* Play scene on modification
* Send correct duration to JS on animation finish
* Copy keyframes prior to updating
* Play scene on update
* Allow for image previews
* Don't attempt to serialize ValueTracker
* Cache previously used scene
* Add ImageMobject functionality
* Clear scene caching when regenerating keyframe data
* Remove extraneous changes
* Update for doctests
* Format generated files
* Add http server for media
* Update moving_mobjects in Scene.add()
* Remove unused function
* black
* Add test
* sort all extracted mobjects w.r.t. z_index
* add test for z_index (from #327)
* more complex z_index test
* black
* propagate z_index from MathTex to TexSymbol
* added get_project_root
* run black
* added svg_mobject and imagemobject
* added svg_mobject
* added svg test
* removed redundant file
* moved get_project_root to test helpers
* moved get_project_root to test helpers
* test for imagemobject
* black
* new image
* small fix
* advenced test added
* Removed redundant test and make space
* fixed docs inline code
* final change
* applied some review changes
* added hint to test
* rename config subpkg to _config for the time being
* Revamp documentation for configuration system modules and classes. Revamp tutorial. Update changelog
* use as_posix so that doctests will pass on Windows
Co-authored-by: Benjamin Hackl <devel@benjamin-hackl.at>
Co-authored-by: kolibril13 <44469195+kolibril13@users.noreply.github.com>
* graph_scene: correct placement of labels
* Update test reference data
* Add test for axes and their labels
* black
* removing commented lines for generation of reference data
Co-authored-by: Leo Torres <dleonardotn@gmail.com>
* black
* do not shift labels onto screen
if user wants the label above the y axis, it should go there, even if there is not enough space. they can still choose another placement
* updated test and reference data for test_axes
Co-authored-by: Leo Torres <dleonardotn@gmail.com>
* Fix become bug
* added a test for the become method
* Add test
* Remove test
* Add test again
* Remove test again
* Add test again again
Co-authored-by: kolibril13 <jan-hendrik.mueller@gmx.net>