Spaces:
Running
on
L4
Running
on
L4
from .project import DeepSVGProject | |
from ..config import STATE_PATH | |
import pickle | |
import os | |
class ToolMode: | |
MOVE = 0 | |
PEN = 1 | |
PENCIL = 2 | |
PLAY = 3 | |
class DrawMode: | |
STILL = 0 | |
DRAW = 1 | |
HOLDING_DOWN = 2 | |
class LoopMode: | |
NORMAL = 0 | |
REVERSE = 1 | |
PINGPONG = 2 | |
class PlaybackMode: | |
NORMAL = 0 | |
EASE = 1 | |
class LoopOrientation: | |
FORWARD = 1 | |
BACKWARD = -1 | |
class State: | |
def __init__(self): | |
self.project_file = None | |
self.project = DeepSVGProject() | |
self.loop_mode = LoopMode.PINGPONG | |
self.loop_orientation = LoopOrientation.FORWARD | |
self.playback_mode = PlaybackMode.EASE | |
self.delay = 1 / 10. | |
self.modified = False | |
# Keep track of previously selected current_frame, separately from timeline's selected_frame attribute | |
self.current_frame = -1 | |
self.current_path = None | |
self.draw_mode = DrawMode.STILL | |
self.clipboard = None | |
# UI references | |
self.main_widget = None | |
self.header = None | |
self.sidebar = None | |
self.draw_viewbox = None | |
self.timeline = None | |
def save_state(self): | |
with open(STATE_PATH, "wb") as f: | |
state_dict = {k: v for k, v in self.__dict__.items() if k in ["project_file"]} | |
pickle.dump(state_dict, f) | |
def load_state(self): | |
if os.path.exists(STATE_PATH): | |
with open(STATE_PATH, "rb") as f: | |
self.__dict__.update(pickle.load(f)) | |
def load_project(self): | |
if self.project_file is not None: | |
self.project.load_project(self.project_file) | |
else: | |
self.project_file = self.project.filename | |