16 #ifndef RDKIT_DRAWTEXTFT_H
17 #define RDKIT_DRAWTEXTFT_H
22 #include FT_FREETYPE_H
33 namespace MolDraw2D_detail {
42 const FT_Vector *to) = 0;
44 const FT_Vector *controlTwo,
45 const FT_Vector *to) = 0;
48 const std::string &font_file);
78 std::vector<std::shared_ptr<StringRect>> &rects,
79 std::vector<TextDrawType> &draw_modes,
80 std::vector<char> &draw_chars)
const override;
85 FT_Pos &y_max, FT_Pos &advance)
const;
94 const FT_Vector *to,
void *user);
virtual double extractOutline()
void fontPosToDrawPos(FT_Pos fx, FT_Pos fy, double &dx, double &dy) const
DrawTextFT(DrawTextFT &&)=delete
virtual int ConicToFunctionImpl(const FT_Vector *control, const FT_Vector *to)=0
DrawTextFT(double max_fnt_sz, double min_fnt_sz, const std::string &font_file)
void setFontFile(const std::string &font_file) override
virtual int LineToFunctionImpl(const FT_Vector *to)=0
virtual ~DrawTextFT() override
double fontCoordToDrawCoord(FT_Pos fc) const
DrawTextFT & operator=(const DrawTextFT &)=delete
virtual int MoveToFunctionImpl(const FT_Vector *to)=0
void calcGlyphBBox(char c, FT_Pos &x_min, FT_Pos &y_min, FT_Pos &x_max, FT_Pos &y_max, FT_Pos &advance) const
DrawTextFT(const DrawTextFT &)=delete
void drawChar(char c, const Point2D &cds) override
DrawTextFT & operator=(DrawTextFT &&)=delete
void getStringRects(const std::string &text, std::vector< std::shared_ptr< StringRect >> &rects, std::vector< TextDrawType > &draw_modes, std::vector< char > &draw_chars) const override
std::string getFontFile() const override
virtual int CubicToFunctionImpl(const FT_Vector *controlOne, const FT_Vector *controlTwo, const FT_Vector *to)=0
#define RDKIT_MOLDRAW2D_EXPORT
int moveToFunction(const FT_Vector *to, void *user)
int cubicToFunction(const FT_Vector *controlOne, const FT_Vector *controlTwo, const FT_Vector *to, void *user)
int conicToFunction(const FT_Vector *control, const FT_Vector *to, void *user)
int lineToFunction(const FT_Vector *to, void *user)