1#include <algorithm>
2#include "cell_group.hpp"
3
4void
5CellGroup::
6pre_paint(void)
7{
8 PainterWidget *p;
9 p = parent();
10
11 if (p != nullptr)
12 {
13 CellGroup *q;
14 q = static_cast<CellGroup*>(p);
15 m_skip_drawing = q->m_skip_drawing
16 || (q->m_bb_against_parent_min.x() > m_bb_max.x())
17 || (q->m_bb_against_parent_max.x() < m_bb_min.x())
18 || (q->m_bb_against_parent_min.y() > m_bb_max.y())
19 || (q->m_bb_against_parent_max.y() < m_bb_min.y());
20
21 m_bb_against_parent_min.x() = std::max(m_bb_min.x(), q->m_bb_against_parent_min.x());
22 m_bb_against_parent_min.y() = std::max(m_bb_min.y(), q->m_bb_against_parent_min.y());
23 m_bb_against_parent_max.x() = std::min(m_bb_max.x(), q->m_bb_against_parent_max.x());
24 m_bb_against_parent_max.y() = std::min(m_bb_max.y(), q->m_bb_against_parent_max.y());
25 }
26 else
27 {
28 m_skip_drawing = false;
29 m_bb_against_parent_min = m_bb_min;
30 m_bb_against_parent_max = m_bb_max;
31 }
32}
33