void TtfFontList::PlotString(const std::string &font, const std::string &str, SBezierList *sbl, Vector origin, Vector u, Vector v) { LoadAll(); TtfFont *tf = std::find_if(&l.elem[0], &l.elem[l.n], [&](const TtfFont &tf) { return tf.FontFileBaseName() == font; }); if(!str.empty() && tf != &l.elem[l.n]) { tf->PlotString(str, sbl, origin, u, v); } else { // No text or no font; so draw a big X for an error marker. SBezier sb; sb = SBezier::From(origin, origin.Plus(u).Plus(v)); sbl->l.Add(&sb); sb = SBezier::From(origin.Plus(v), origin.Plus(u)); sbl->l.Add(&sb); } }
void TtfFontList::PlotString(char *font, char *str, double spacing, SBezierList *sbl, Vector origin, Vector u, Vector v) { LoadAll(); int i; for(i = 0; i < l.n; i++) { TtfFont *tf = &(l.elem[i]); if(strcmp(tf->FontFileBaseName(), font)==0) { tf->LoadFontFromFile(false); tf->PlotString(str, spacing, sbl, origin, u, v); return; } } // Couldn't find the font; so draw a big X for an error marker. SBezier sb; sb = SBezier::From(origin, origin.Plus(u).Plus(v)); sbl->l.Add(&sb); sb = SBezier::From(origin.Plus(v), origin.Plus(u)); sbl->l.Add(&sb); }