vector<TModelUnit> TRows;
54 autotearline = group.GetTearline();
56layout.reserve(tearline);
67 for(; curr < rows.size(); ++curr) {
68 if(rows[curr] < range.
GetFrom()) {
73 if(curr < rows.size()) {
74layout[curr].push_back(*iter);
75(*iter)->SetRowNum(curr);
76 if(curr > 0 && range.
GetTo() < rows[curr-1] &&
78rows[curr] = rows[curr-1];
80rows[curr] = range.
GetTo();
83 if(tearline > 0 && (layout.size() > tearline)) {
84(*iter)->SetVisible(
false);
86rows.push_back(range.
GetTo());
87(*iter)->SetRowNum(layout.size());
89 row.push_back(*iter);
90layout.push_back(
row);
96 if( !objs.empty() ) {
97obj_h = objs.front()->GetHeight();
111 bound.m_Height = 0.0;
112 bound.m_Width = 0.0;
113 bound.m_X = DBL_MAX;
116 size_tcurrent_row = 0;
119 boolrow_is_visible =
true;
122 if((*iter)->GetTearline() > 0 && (current_row > (*iter)->GetTearline())) {
123row_is_visible =
false;
134(*iter)->SetTop(
bound.m_Height);
135max_h =
max(max_h, (*iter)->GetHeight());
137right =
max(right, (*iter)->GetRight());
139 bound.m_Height += max_h;
virtual void BuildLayout(CLayoutGroup &group, SBoundingBox &bound) const
CColumnLayout.
TSeqPos m_MinDist
The minimum distance we permit two items to be within, horizontally.
void x_SetObjectPos(TLayout &layout, SBoundingBox &bound) const
Set the objects' position (Y), and update the bounding box of the group (of all objects).
CLayoutGroup is a container of CSeqGlyphs (layout objects).
ILayoutPolicy::TObjectList TObjectList
class CSeqGlyph defines an interface that wraps a rectilinear abstract object.
virtual TModelUnit GetRight() const
void SetTearline(size_t Tearline)
tearline factor â used to limit a list of glyphs
void SetVisible(size_t v)
virtual TModelUnit GetLeft() const
vector< TLayoutRow > TLayout
void x_SeparateObjects(CLayoutGroup &group, TLayout &layout, SBoundingBox &bound, size_t group_size, int vert_space) const
Separate objects into multiple sub-groups.
list< CRef< CSeqGlyph > > TObjectList
vector< CRef< CSeqGlyph > > TLayoutRow
static const size_t kMinRowPerGroup
static const int kVertScreenPixel
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
position_type GetLength(void) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
Useful/utility classes and methods.
T bound(T x_, T xlo_, T xhi_)
#define row(bind, expected)
static bool s_CompareCRefs(const CRef< CSeqGlyph > &ref_obj1, const CRef< CSeqGlyph > &ref_obj2)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4