You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegraphics/ksvg/impl/libs/libtext2path/src/Glyph.cpp

353 lines
5.6 KiB

/* Copyright (C) 2003 Nikolas Zimmermann <wildfox@kde.org>
This file is part of the KDE project
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
aint with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include <iostream>
#include "Glyph.h"
using namespace T2P;
Glyph::Glyph()
{
m_bezierPath = 0;
}
Glyph::~Glyph()
{
delete m_bezierPath;
m_bezierPath = 0;
}
Affine &Glyph::affine()
{
return m_affine;
}
void Glyph::setAffine(const Affine &affine)
{
m_affine = affine;
}
const BezierPath *Glyph::bezierPath() const
{
return const_cast<const BezierPath *>(m_bezierPath);
}
BezierPath *Glyph::modifiableBezierPath()
{
return m_bezierPath;
}
void Glyph::setBezierPath(const BezierPath *bpath)
{
m_bezierPath = const_cast<BezierPath *>(bpath);
}
FT_BBox *Glyph::ftBbox()
{
return m_ftBbox;
}
// #####
GlyphAffinePair::GlyphAffinePair(const Glyph *glyph, const Affine &affine)
{
m_glyph = glyph;
m_affine = affine;
m_transformatedPath = 0;
}
GlyphAffinePair::~GlyphAffinePair()
{
// The glyphs are shared and thus not deleted (Niko)
delete m_transformatedPath;
}
void GlyphAffinePair::setTransformatedPath(const BezierPath *path)
{
m_transformatedPath = path;
}
const BezierPath *GlyphAffinePair::transformatedPath() const
{
return m_transformatedPath;
}
const Glyph *GlyphAffinePair::glyph() const
{
return m_glyph;
}
Affine &GlyphAffinePair::affine()
{
return m_affine;
}
// #####
GlyphSet::GlyphSet()
{
m_glyphCount = 0;
m_bboxX = 0;
m_bboxY = 0;
m_width = 0;
m_height = 0;
m_xpen = 0;
m_ypen = 0;
m_underlinePosition = 0;
m_underlineThickness = 0;
m_overlinePosition = 0;
m_strikeThroughPosition = 0;
m_pixelBaseline = 0;
}
GlyphSet::~GlyphSet()
{
m_set.clear();
}
std::vector<GlyphAffinePair *> &GlyphSet::set()
{
return m_set;
}
std::list<float> GlyphSet::glyphXAdvance()
{
return m_glyphXAdvance;
}
std::list<float> GlyphSet::glyphYAdvance()
{
return m_glyphYAdvance;
}
unsigned int GlyphSet::glyphCount() const
{
return m_glyphCount;
}
int GlyphSet::width() const
{
return m_width;
}
int GlyphSet::height() const
{
return m_height;
}
int GlyphSet::bboxX() const
{
return m_bboxX;
}
int GlyphSet::bboxY() const
{
return m_bboxY;
}
double GlyphSet::xpen() const
{
return m_xpen;
}
double GlyphSet::ypen() const
{
return m_ypen;
}
int GlyphSet::underlinePosition() const
{
return m_underlinePosition;
}
int GlyphSet::underlineThickness() const
{
return m_underlineThickness;
}
int GlyphSet::overlinePosition() const
{
return m_overlinePosition;
}
int GlyphSet::strikeThroughPosition() const
{
return m_strikeThroughPosition;
}
int GlyphSet::pixelBaseline() const
{
return m_pixelBaseline;
}
// #####
GlyphLayoutParams::GlyphLayoutParams()
{
}
GlyphLayoutParams::~GlyphLayoutParams()
{
}
bool GlyphLayoutParams::tb() const
{
return m_tb;
}
void GlyphLayoutParams::setTb(bool tb)
{
m_tb = tb;
}
bool GlyphLayoutParams::useBidi() const
{
return m_useBidi;
}
void GlyphLayoutParams::setUseBidi(bool bidi)
{
m_useBidi = bidi;
}
double GlyphLayoutParams::wordSpacing() const
{
return m_wordSpacing;
}
void GlyphLayoutParams::setWordSpacing(double wordSpacing)
{
m_wordSpacing = wordSpacing;
}
double GlyphLayoutParams::letterSpacing() const
{
return m_letterSpacing;
}
void GlyphLayoutParams::setLetterSpacing(double letterSpacing)
{
m_letterSpacing = letterSpacing;
}
std::string GlyphLayoutParams::baselineShift() const
{
return m_baseline;
}
void GlyphLayoutParams::setBaselineShift(const std::string &baseline)
{
m_baseline = baseline;
}
int GlyphLayoutParams::glyphOrientationVertical() const
{
return m_glyphOrientationVertical;
}
void GlyphLayoutParams::setGlyphOrientationVertical(int orient)
{
m_glyphOrientationVertical = orient;
}
int GlyphLayoutParams::glyphOrientationHorizontal() const
{
return m_glyphOrientationHorizontal;
}
void GlyphLayoutParams::setGlyphOrientationHorizontal(int orient)
{
m_glyphOrientationHorizontal = orient;
}
double GlyphLayoutParams::textPathStartOffset() const
{
return m_textPathStartOffset;
}
void GlyphLayoutParams::setTextPathStartOffset(double offset)
{
m_textPathStartOffset = offset;
}
// #####
GlyphRenderParams::GlyphRenderParams()
{
}
GlyphRenderParams::~GlyphRenderParams()
{
}
Font *GlyphRenderParams::font() const
{
return m_font;
}
void GlyphRenderParams::setFont(Font *font)
{
m_font = font;
}
const GlyphLayoutParams *GlyphRenderParams::layout() const
{
return m_layout;
}
void GlyphRenderParams::setLayout(const GlyphLayoutParams *layout)
{
m_layout = layout;
}
unsigned int GlyphRenderParams::glyphIndex() const
{
return m_glyphIndex;
}
void GlyphRenderParams::setGlyphIndex(unsigned int glyphIndex)
{
m_glyphIndex = glyphIndex;
}
unsigned int GlyphRenderParams::lastGlyph() const
{
return m_lastGlyph;
}
void GlyphRenderParams::setLastGlyph(unsigned int lastGlyph)
{
m_lastGlyph = lastGlyph;
}
unsigned short GlyphRenderParams::character() const
{
return m_character;
}
void GlyphRenderParams::setCharacter(unsigned short character)
{
m_character = character;
}
// vim:ts=4:noet