after-merge compilation fixes.

This commit is contained in:
rachytski 2011-06-11 20:56:34 +03:00 committed by Alex Zolotarev
parent 0a19c9d3f8
commit 52f4b4a3c8
2 changed files with 0 additions and 142 deletions

View file

@ -149,16 +149,6 @@ namespace fwork
m_drawCount += count;
#endif
// remove duplicating identical drawing keys
PreProcessKeys();
#ifdef PROFILER_DRAWING
m_drawCount += m_keys.size();
#endif
// get drawing rules for the m_keys array
size_t const count = m_keys.size();
buffer_vector<di::DrawRule, reserve_rules_count> rules;
rules.resize(count);

View file

@ -16,138 +16,6 @@
namespace yg
{
struct PathPoint
{
int m_i;
m2::PointD m_pt;
PathPoint(int i = -1,
m2::PointD const & pt = m2::PointD())
: m_i(i),
m_pt(pt)
{}
};
struct PivotPoint
{
double m_angle;
PathPoint m_pp;
PivotPoint(double angle = 0, PathPoint const & pp = PathPoint())
{}
};
class pts_array
{
m2::PointD const * m_arr;
size_t m_size;
bool m_reverse;
public:
pts_array(m2::PointD const * arr, size_t sz, double fullLength, double & pathOffset)
: m_arr(arr), m_size(sz), m_reverse(false)
{
ASSERT ( m_size > 1, () );
/* assume, that readable text in path should be ('o' - start draw point):
* / o
* / \
* / or \
* o \
*/
double const a = ang::AngleTo(m_arr[0], m_arr[m_size-1]);
if (fabs(a) > math::pi / 2.0)
{
// if we swap direction, we need to recalculate path offset from the end
double len = 0.0;
for (size_t i = 1; i < m_size; ++i)
len += m_arr[i-1].Length(m_arr[i]);
pathOffset = fullLength - pathOffset - len;
ASSERT ( pathOffset >= -1.0E-6, () );
if (pathOffset < 0.0) pathOffset = 0.0;
m_reverse = true;
}
}
size_t size() const { return m_size; }
m2::PointD get(size_t i) const
{
ASSERT ( i < m_size, ("Index out of range") );
return m_arr[m_reverse ? m_size - i - 1 : i];
}
m2::PointD operator[](size_t i) const { return get(i); }
PathPoint const offsetPoint(PathPoint const & pp, double offset)
{
PathPoint res = pp;
if (res.m_i == -1)
return res;
for (size_t i = res.m_i; i < size() - 1; ++i)
{
double l = res.m_pt.Length(get(i + 1));
res.m_pt = res.m_pt.Move(min(l, offset), ang::AngleTo(get(i), get(i + 1)));
res.m_i = i;
if (offset < l)
break;
else
offset -= l;
}
return res;
}
PivotPoint findPivotPoint(PathPoint const & pp, GlyphMetrics const & sym, double kern)
{
PathPoint startPt = offsetPoint(pp, kern);
PivotPoint res;
res.m_pp.m_i = -1;
m2::PointD pt1 = startPt.m_pt;
double angle = 0;
double advance = sym.m_xOffset + sym.m_width / 2.0;
int j = startPt.m_i;
while (advance > 0)
{
if (j + 1 == size())
return res;
double l = get(j + 1).Length(pt1);
angle += ang::AngleTo(get(j), get(j + 1));
if (l < advance)
{
advance -= l;
pt1 = get(j + 1);
++j;
}
else
{
res.m_pp.m_i = j;
res.m_pp.m_pt = pt1.Move(advance, ang::AngleTo(get(j), get(j + 1)));
advance = 0;
angle /= (res.m_pp.m_i - startPt.m_i + 1);
res.m_angle = angle;
break;
}
}
return res;
}
};
double GlyphLayout::getKerning(GlyphLayoutElem const & prevElem, GlyphLayoutElem const & curElem)
{
double res = 0;