Source code for pyfeyn2.render.render

from pyfeyn2.feynmandiagram import FeynmanDiagram, Leg, Propagator, Vertex
import abc


[docs]class Render: def __init__(self, fd=None): self.fd = fd self.src = ""
[docs] def set_feynman_diagram(self, fd): self.fd = fd
[docs] def get_src(self): return self.src
[docs] def set_src(self, src): self.src = src
@abc.abstractmethod
[docs] def render( self, file=None, show=True, resolution=100, width=None, height=None, clean_up=True, ): """ Render the diagram. """ return
@staticmethod
[docs] def valid_style(style: str) -> bool: return False
@staticmethod
[docs] def valid_type(typ: str) -> bool: return False
@staticmethod
[docs] def valid_attribute(attr: str) -> bool: if attr in ["id", "pdgid", "sense", "target", "source", "type"]: return True return False
[docs] def demo_propagator(self, d, show=True, label=None): v1 = Vertex().set_xy(-2, -2) v2 = Vertex().set_xy(2, -2) fd = FeynmanDiagram().add( v1, v2, Propagator().connect(v1, v2).set_type(d).set_label(label).set_tension(0.0), Leg() .set_target(v1) .set_point(v1) .set_type("phantom") .set_incoming() .set_length(0.0), Leg() .set_target(v2) .set_point(v2) .set_type("phantom") .set_outgoing() .set_length(0.0), ) self.set_feynman_diagram(fd) self.render(show=show)