repeating pen pattern up to some reasonable width to lower the amount of generated geometry.

This commit is contained in:
rachytski 2011-02-22 00:47:28 +02:00 committed by Alex Zolotarev
parent edc1e07cf2
commit 2006a48a25
2 changed files with 7 additions and 12 deletions

View file

@ -18,7 +18,7 @@ namespace yg
m_isSolid = true;
else
{
/* buffer_vector<double, 8> vec;
buffer_vector<double, 4> vec;
copy(pattern, pattern + patternSize, back_inserter(vec));
double length = 0;
for (size_t i = 0; i < vec.size(); ++i)
@ -28,24 +28,19 @@ namespace yg
length += vec[i];
}
int periods = min(20, max(int(100 / length), 1));
int periods = min(20, max(int(128 / length), 1));
m_pat.reserve(periods * vec.size());
for (int i = 0; i < periods; ++i)
copy(vec.begin(), vec.end(), back_inserter(m_pat));
*/
copy(pattern, pattern + patternSize, back_inserter(m_pat));
/* copy(pattern, pattern + patternSize, back_inserter(m_pat));
double length = 0;
for (size_t i = 0; i < m_pat.size(); ++i)
{
if ((m_pat[i] < 2) && (m_pat[i] > 0))
m_pat[i] = 2;
// length += m_pat[i];
length += m_pat[i];
}
/* int periods = min(20, max(int(100 / length), 1));
m_pat.reserve(periods * vec.size());
for (int i = 0; i < periods; ++i)
copy(vec.begin(), vec.end(), back_inserter(m_pat));
*/
}
}

View file

@ -10,8 +10,8 @@ namespace yg
/// definition of the line style pattern used as a texture-cache-key
struct PenInfo
{
//typedef buffer_vector<double, 8> TPattern;
typedef vector<double> TPattern;
typedef buffer_vector<double, 16> TPattern;
// typedef vector<double> TPattern;
Color m_color;
double m_w;
TPattern m_pat;