Differential D4286 Diff 13458 tests/python/event_simulate/view3d_mesh_sculpt_undo_dyntopo_editmode.py
Changeset View
Changeset View
Standalone View
Standalone View
tests/python/event_simulate/view3d_mesh_sculpt_undo_dyntopo_editmode.py
- This file was added.
| # Apache License, Version 2.0 | |||||
| import os | |||||
| import sys | |||||
| sys.path.append(os.path.join(os.path.dirname(__file__), "modules")) | |||||
| import easy_keys | |||||
| import bpy | |||||
| window = bpy.context.window | |||||
| def play_keys(): | |||||
| e = easy_keys.EventGenerate(window) | |||||
| size = window.width, window.height | |||||
| yield e.shift.f5() # 3D View | |||||
| yield e.ctrl.space() # Full-screen. | |||||
| yield e.a().x().ret() # Delete all. | |||||
| yield e.shift.a().m().t() # Add torus. | |||||
| yield e.f3() # Remove UV's via search. | |||||
| yield e.text("Remove UV Map").ret() | |||||
| yield e.ctrl.tab().s() # Sculpt via pie menu. | |||||
| yield e.ctrl.d().ret() # Dynamic topology. | |||||
| yield e.f3() # Symmetrize via search. | |||||
| yield e.text("Symmetrize").ret() # ... | |||||
| # Some painting (demo it works, not needed for the crash) | |||||
| yield from e.leftmouse.cursor_motion( | |||||
| (x, size[1] // 2) for x in | |||||
| range(int(size[0] * 0.2), int(size[0] * 0.8), 20) | |||||
| ) | |||||
| yield e.tab() # Edit mode. | |||||
| yield e.tab() # Object mode. | |||||
| yield e.ctrl.z(3) # Undo | |||||
| yield e.ctrl.z() # Undo asserts (nested undo call from dyntopo) | |||||
| bpy.app.use_event_simulate = False # Allow human interaction. | |||||
| yield easy_keys.Finish | |||||
| easy_keys.tweak_preferences(bpy.context.preferences) | |||||
| easy_keys.run(play_keys()) | |||||