8 {0x00, 0x00, 0xFF, 0xFF},
9 {0xFF, 0xFF, 0x00, 0xFF},
10 {0xFF, 0xFF, 0x00, 0x00},
11 {0xFF, 0xFF, 0x00, 0x00},
15 {0x00, 0x00, 0xFF, 0xFF},
16 {0x00, 0x00, 0xFF, 0xFF},
17 {0xFF, 0x00, 0xFF, 0xFF},
18 {0xFF, 0xFF, 0x00, 0x00},
23 m_lowerBoundLayout(lowerBoundLayout),
24 m_upperBoundLayout(upperBoundLayout),
25 m_integrandLayout(integrandLayout)
34 delete m_lowerBoundLayout;
35 delete m_upperBoundLayout;
36 delete m_integrandLayout;
40 KDSize integrandSize = m_integrandLayout->
size();
41 KDSize upperBoundSize = m_upperBoundLayout->
size();
51 2*k_boundHeightMargin+2*k_integrandHeigthMargin+integrandSize.
height()), expressionColor);
55 KDSize integrandSize = m_integrandLayout->
size();
56 KDSize lowerBoundSize = m_lowerBoundLayout->
size();
57 KDSize upperBoundSize = m_upperBoundLayout->
size();
59 k_symbolWidth+k_lineThickness+k_boundWidthMargin+max(lowerBoundSize.
width(), upperBoundSize.
width())+k_integrandWidthMargin+integrandSize.
width(),
60 upperBoundSize.
height()+ 2*k_integrandHeigthMargin+integrandSize.
height()+lowerBoundSize.
height());
66 return m_upperBoundLayout;
68 return m_lowerBoundLayout;
70 return m_integrandLayout;
77 KDSize integrandSize = m_integrandLayout->
size();
78 KDSize lowerBoundSize = m_lowerBoundLayout->
size();
79 KDSize upperBoundSize = m_upperBoundLayout->
size();
82 if (
child == m_lowerBoundLayout) {
84 y = upperBoundSize.
height()+2*k_integrandHeigthMargin+integrandSize.
height();
85 }
else if (
child == m_upperBoundLayout) {
88 }
else if (
child == m_integrandLayout) {
89 x =
k_symbolWidth +k_lineThickness+ k_boundWidthMargin+max(lowerBoundSize.
width(), upperBoundSize.
width())+k_integrandWidthMargin;
90 y = upperBoundSize.
height()+k_integrandHeigthMargin;
const uint8_t topSymbolPixel[IntegralLayout::k_symbolHeight][IntegralLayout::k_symbolWidth]
constexpr KDCoordinate width() const
void blendRectWithMask(KDRect rect, KDColor color, const uint8_t *mask, KDColor *workingBuffer)
KDSize computeSize() override
void fillRect(KDRect rect, KDColor color)
KDPoint positionOfChild(ExpressionLayout *child) override
IntegralLayout(ExpressionLayout *lowerBoundLayout, ExpressionLayout *upperBoundLayout, ExpressionLayout *integrandLayout)
static constexpr KDCoordinate k_symbolWidth
void render(KDContext *ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor) override
static constexpr KDCoordinate k_symbolHeight
void setParent(ExpressionLayout *parent)
ExpressionLayout * child(uint16_t index) override
const uint8_t bottomSymbolPixel[IntegralLayout::k_symbolHeight][IntegralLayout::k_symbolWidth]
constexpr KDCoordinate height() const