Пример #1
0
	void EditorPoint::drawPoint(int p_index, bool &p_isSelected, bool &p_isLight, CL_GraphicContext &p_gc)
	{
		CL_Colorf color = (p_isSelected || p_isLight) ? m_impl->m_selectedPointColor : m_impl->m_pointColor;

		if (p_isSelected)
		{
			if (isFirstKey(CL_KEY_SHIFT) && m_impl->m_selectedIndex != -1)
			{
				CL_Pen pen;

				pen.set_line_width(PAINT_LINE_WIDTH);
				p_gc.set_pen(pen);

				int x1, y1, x2, y2;
				getShiftRect(p_index, &x1, &y1, &x2, &y2);

				CL_Draw::line(p_gc, x1, y1, x2, y2, m_impl->m_shiftLineColor);

				pen.set_line_width(1.0f);
				p_gc.set_pen(pen);

				CL_Draw::fill(p_gc, getPointRect(m_impl->m_minShiftPoint), m_impl->m_minAndMaxShiftRectColor);
				CL_Draw::fill(p_gc, getPointRect(m_impl->m_maxShiftPoint), m_impl->m_minAndMaxShiftRectColor);
			}
		}

		CL_Draw::fill(p_gc, getPointRect(p_index), color);

		if (p_isSelected)
		{
			CL_Draw::box(p_gc, getPointRect(p_index), m_impl->m_selectedPointFrameColor);
		}
	}
Пример #2
0
void SyberGraphRect::paintActiveState(QPainter *painter)
{
    painter->save();
    QPen pen;
    pen.setColor(Qt::red);
//    painter->setRenderHint(Q);
    painter->setPen(pen);
    for(int i = 0; i<=getHandlerCount(); i++)
    {
        QRect rect = getPointRect();
        rect.moveCenter(getHandle(i));
        painter->drawRect(rect);
    }
    painter->restore();
}
Пример #3
0
	void EditorPoint::findPointAt(const CL_Pointf &p_pos, int &p_index)
	{
		if (getKeys().size() == 0)
		{
			p_index = -1;
			m_impl->m_state = EditorPointImpl::None;

			CL_Rect rect = getPointRect(p_pos);

			for (int i = 0; i < m_track.getPointCount(); ++i)
			{
				if (rect.contains(m_track.getPoint(i).getPosition()))
				{
					m_impl->m_state = EditorPointImpl::Point;
					p_index = i;

					return;
				}
			}
		}
	}
Пример #4
0
bool SyberGraphRect::contains(const QPoint &point)
{
    QRect rect = getPointRect();
    rect.moveCenter(point);
    return intersects(rect);
}