From 2006a48a25d4a6b9cfa8355f3859a195f4908a7d Mon Sep 17 00:00:00 2001 From: rachytski Date: Tue, 22 Feb 2011 00:47:28 +0200 Subject: [PATCH] repeating pen pattern up to some reasonable width to lower the amount of generated geometry. --- yg/pen_info.cpp | 15 +++++---------- yg/pen_info.hpp | 4 ++-- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/yg/pen_info.cpp b/yg/pen_info.cpp index a201a146e9..9b49a6cf28 100644 --- a/yg/pen_info.cpp +++ b/yg/pen_info.cpp @@ -18,7 +18,7 @@ namespace yg m_isSolid = true; else { -/* buffer_vector vec; + buffer_vector 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)); */ } } diff --git a/yg/pen_info.hpp b/yg/pen_info.hpp index daae16c034..e057792478 100644 --- a/yg/pen_info.hpp +++ b/yg/pen_info.hpp @@ -10,8 +10,8 @@ namespace yg /// definition of the line style pattern used as a texture-cache-key struct PenInfo { - //typedef buffer_vector TPattern; - typedef vector TPattern; + typedef buffer_vector TPattern; +// typedef vector TPattern; Color m_color; double m_w; TPattern m_pat;