Files @ 3207d998d598
Branch filter:

Location: Diana/src/diana/drawer/tikz.py - annotation

Laman
reintroduced tikz output format
from .base import Drawer


def stone_color(c):
	if c == "b":
		return "black"
	elif c == "w":
		return "white"
	else:
		return c


def label_color(c):
	return stone_color("b" if c == "w" else "w" if c == "b" else c)


class Tikz(Drawer):
	high_numbers = True

	def render(self, template_name, bgcolor=""):
		points = [p for (i, p) in sorted(self._index.values(), key=lambda x: x[0])]

		stones = [p for p in points if p.color and p.label == ""]
		moves = [p for p in points if p.color and p.label]
		labels = [p for p in points if not p.color and p.label]

		params = {
			"stones": stones, "moves": moves, "labels": labels, "bgcolor": bgcolor,
			"stone_color": stone_color, "label_color": label_color
		}

		return self._env.get_template(template_name).render(params)

	def save(self, filename, template="templ.tex", bgcolor=""):
		file = open(filename + ".tikz", 'w')
		file.write(self.render(template, bgcolor))
		file.close()

		super().save(filename)