#!/usr/bin/env python3
# ***************************************************************************
# *   Copyright (c) 2013 WandererFan <wandererfan@gmail.com>                *
# *                                                                         *
# *   This file is part of the FreeCAD CAx development system.              *
# *                                                                         *
# *   This program is free software; you can redistribute it and/or modify  *
# *   it under the terms of the GNU Lesser General Public License (LGPL)    *
# *   as published by the Free Software Foundation; either version 2 of     *
# *   the License, or (at your option) any later version.                   *
# *   for detail see the LICENCE text file.                                 *
# *                                                                         *
# *   This program is distributed in the hope that it will be useful,       *
# *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
# *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
# *   GNU Library General Public License for more details.                  *
# *                                                                         *
# *   You should have received a copy of the GNU Library General Public     *
# *   License along with this program; if not, write to the Free Software   *
# *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
# *   USA                                                                   *
# *                                                                         *
# ***************************************************************************


# tester for Part.makeWireString

import FreeCAD
import Part
import PartDesign

print("testWire started")

# test strings
# if string contains funky characters, it has to be declared as Unicode or it
# turns into the default encoding (usually utf8).  FT2 doesn't do utf8.
# String = 'Wide WMA_'                                 # wide glyphs for tracking
# String = 'Big'
# String = u'ecAnO'                                    # UCS-2 w/ only ASCII
# String = u'ucs2uéçÄñØ'                               # UCS-2
# String = 'utf8!uéçÄñØ'                               # UTF-8
# String = 'abcdefghijklmnopqrstuvwxyz0123456789'
# String = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# String = 'Big Daddy'                                 # white space
# String = 'AVWAIXA.V'                                 # kerning
String = "FreeCAD"  # ASCII

# FontPath = '/usr/share/fonts/truetype/msttcorefonts/'
# FontName = 'Times_New_Roman_Italic.ttf'
FontPath = "/usr/share/fonts/truetype/msttcorefonts/"
FontName = "Arial.ttf"
# FontName = 'NOTArial.ttf'                            # font file not found error
# FontPath = '/usr/share/fonts/truetype/msttcorefonts/'
# FontName = 'ariali.ttf'                              # symlink to ttf
# FontPath = '/usr/share/fonts/truetype/'
# FontName = 'Peterbuilt.ttf'                          # overlapping script font
# FontPath = '/usr/share/fonts/truetype/'
# FontName = 'dyspepsia.ttf'                           # overlapping script font  # :)

Height = 2000  # out string height FCunits
Track = 0  # intercharacter spacing

print("testWire.py input String contains ", len(String), " characters.")

s = Part.makeWireString(String, FontPath, FontName, Height, Track)

print("returned from makeWireString")
print("testWire.py output contains ", len(s), " WireChars.")

for char in s:
    for contour in char:
        Part.show(contour)

print("testWire ended.")
