#! /usr/bin/python3 -t


PROG_DESC = "Outputs an SVG 'roadkill' diagram for said molecule"

import math; from math import sqrt,sin,cos,pi
import rn
import sys, os, re
import mformula
import mformula_oxocarbon; from mformula_oxocarbon import build_formula_COO_1neg
import mformula_svg



def image_name(style):
  fname = __file__
  imgname = re.sub(r'.*[/]', "", fname[0:-3]) + \
    "_style" + style
  return imgname

def image_descr(style):
  fname = __file__
  imgname = re.sub(r'.*[/]', "", fname[0:-3])
  descr = "Structural formula of " + re.sub(r'[_]', " ", imgname)
  descr += "\n" + \
    "\n" + \
    mformula_svg.style_descr(style)
  return descr

def build_formula(svg):

  fm = mformula.obj()

  fh = build_formula_half(svg)

  k0 = fm.add_subformula(fh, 0,   0, [0,0]) # Left half
  k1 = fm.add_subformula(fh, 1,   0, [0,0]) # Right half

  k3 = fm.add_atom("O", [0,0], 0,0)

  fm.add_bond(k0+0,k3,1.0)
  fm.add_bond(k1+0,k3,1.0)

  return fm

def image_name(style):
  fname = __file__
  imgname = re.sub(r'.*[/]', "", fname[0:-3]) + \
    "_style" + style
  return imgname

def image_descr(style):
  fname = __file__
  imgname = re.sub(r'.*[/]', "", fname[0:-3])
  descr = "Structural formula of " + re.sub(r'[_]', " ", imgname)
  descr += "\n" + \
    "\n" + \
    mformula_svg.style_descr(style)
  return descr

def build_formula_half(svg) :

  fh = mformula.obj()

  c30 = cos(30*pi/180)
  s30 = sin(30*pi/180)

  av = 1.0                 # Valence of bond from C to bridging O.
  ab = svg.rel_bond_length(av)  # Relative length of bond from C to bridging O.

  # Atom centers:
  p0 = [+c30*ab,+s30*ab]                # Carbon.

  fg = build_formula_COO_1neg(svg,120)
  k0 = fh.add_subformula(fg, 0, 30, p0)

  return fh


