Blame onefile/svg-save.inc.h

Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
FILE* svgBegin(const char *filename, double widthMM, double heightMM, double unitsPerMM) {
Ivan Mahonin a5e8d6
  FILE *f = fopen(filename, "w");
Ivan Mahonin a5e8d6
  if (f) {
Ivan Mahonin a5e8d6
    fprintf(f, "<svg width=\"%gmm\" height=\"%gmm\" viewBox=\"0 0 %g %g\">\n",
Ivan Mahonin a5e8d6
               widthMM, heightMM, widthMM*unitsPerMM, heightMM*unitsPerMM );
Ivan Mahonin a5e8d6
  }
Ivan Mahonin a5e8d6
  return f;
Ivan Mahonin a5e8d6
}
Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
void svgEnd(FILE *f)  {
Ivan Mahonin a5e8d6
  if (!f) return;
Ivan Mahonin a5e8d6
  fprintf(f, "</svg>\n");
Ivan Mahonin a5e8d6
  fclose(f);
Ivan Mahonin a5e8d6
}
Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
void svgAddText(FILE *f, double x, double y, double size, const char *text)  {
Ivan Mahonin a5e8d6
  if (!f) return;
Ivan Mahonin a5e8d6
  fprintf(f, "<text x=\"%g\" y=\"%g\" style=\"font-size:%g\">%s</text>\n", x, y, size, text);
Ivan Mahonin a5e8d6
}
Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
Ivan Mahonin a5e8d6
void svgAddPath(FILE *f, const char *path, double width, int round)  {
Ivan Mahonin a5e8d6
  if (!f) return;
Ivan Mahonin a5e8d6
  fprintf(f, "
Ivan Mahonin a5e8d6
             "      d=\"%s\" />\n",
Ivan Mahonin a5e8d6
             (round ? "stroke-linecap:round;stroke-linejoin:round;" : ""),
Ivan Mahonin a5e8d6
             width, path );
Ivan Mahonin a5e8d6
}