Previously, Camera would keep track of which mobjects are supposed to be "static", so that it could generated their render groups once and not repeat unnecessarily. This had an awkward dependence where Scene would then need to keep track of which mobjects should and should not be considered static.
This update pushes that logic to the Mobject level, where it keeps track internally of whether it's being animated, has an updater, or can be moved around by the mouse.
* Enable setting points to a null list, and adding one point at a time.
* Add refresh_locked_data
* Add presenter mode to scenes with -p option
* Allow for an embed by hitting e during interaction
* Add set_min_height, etc.
* Make sure null parametric curve has at least one point
* Account for edge case where \{ is used in Tex
* Allow for logging notes in wait calls, useful for presenter mode
* Simplify choose, and add gen_choose for fractional amounts
* Default to no top on axes
* Allow match_x, match_y, etc. to take in a point
* Allow wait calls to ignore presenter mode
* Just use math.combo, no caching with choose(n, r)
* Use generator instead of list in bezier
* Bubble init_colors should override
* Account for "px" values read in from an svg
* Stop displaying when writing is happening
* Update the way Bubble override SVG colors
When a scene is written to file, it will now do a preliminary run of a copy of the scene with skip_animations turned on to count the total frames, which has the added benefit of catching runtime errors early, and allowing an quicker preview of the last frame to be sure everything will render as expected.
The Progress display bars for individual animations are replaced with a more global progress display bar showing the full render time for the scene.
This has the downside that all the non-rendering computations in a scene are run twice, so any scene with slow computations unrelated to rendering will take longer. But those are rarer, so the benefits seem worth it.
If we add an updater to the frame of the camera, and have not added the frame into the scene before, the updater will not work. So, I suggest to add the frame to the objects of the scene at the initilization stage.