-
Tomáš Orviský authored23bc52d1
main.py 1.31 KiB
from manim import *
from typing import Type
from pyPlantUML import *
import argparse
from pyPlantUML.layout.KamadaKawai import KamadaKawai
from pyPlantUML.layout.DotLayout import DotLayout
from pyPlantUML.layout.SpringLayout import SpringLayout
class MainScene(MovingCameraScene):
def construct(self):
parser = PUMLParser()
diagram: Type[Diagram] = parser.parseFile(self.file)
layout = SpringLayout(diagram)
layout.apply()
layout.scale(7, 5)
self.camera.background_color = WHITE
Text.set_default(font_size=16)
diagram.setScene(self)
diagram.animate = self.animate
diagram.draw()
def setFile(self, file: str):
self.file = file
def setAnimate(self, animate: bool):
self.animate = animate
if __name__ == "__main__":
config.output_file = "PlantUML"
config.cairo_path = "media/images/"
config.ffmpeg_path = "media/videos/"
argparser = argparse.ArgumentParser(prog="pyPlantUML")
argparser.add_argument(
"-f", "--file", required=True, type=str, help="Path to source plantUml file."
)
argparser.add_argument("-a", "--animate", action="store_true")
args = argparser.parse_args()
scene = MainScene()
scene.setFile(args.file)
scene.setAnimate(args.animate)
scene.render()