本文整理汇总了C++中VectorImage::getCurvesCloseTo方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorImage::getCurvesCloseTo方法的具体用法?C++ VectorImage::getCurvesCloseTo怎么用?C++ VectorImage::getCurvesCloseTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VectorImage
的用法示例。
在下文中一共展示了VectorImage::getCurvesCloseTo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: storeClosestVectorCurve
/**
* @brief MoveTool::storeClosestVectorCurve
* stores the curves closest to the mouse position in mClosestCurves
*/
void MoveTool::storeClosestVectorCurve(Layer* layer)
{
auto layerVector = static_cast<LayerVector*>(layer);
VectorImage* pVecImg = layerVector->getLastVectorImageAtFrame(mEditor->currentFrame(), 0);
mScribbleArea->mClosestCurves = pVecImg->getCurvesCloseTo(getCurrentPoint(),
mScribbleArea->mSelectionTolerance / mEditor->view()->scaling());
}
示例2: mouseMoveEvent
void MoveTool::mouseMoveEvent( QMouseEvent *event )
{
Layer* layer = mEditor->layers()->currentLayer();
if ( layer == NULL ) {
return;
}
if ( layer->type() != Layer::BITMAP && layer->type() != Layer::VECTOR )
{
return;
}
if ( event->buttons() & Qt::LeftButton ) // the user is also pressing the mouse (dragging)
{
if ( mScribbleArea->somethingSelected ) // there is something selected
{
if ( event->modifiers() != Qt::ShiftModifier ) // (and the user doesn't press shift)
{
switch ( mScribbleArea->mMoveMode )
{
case ScribbleArea::MIDDLE:
if ( QLineF( getLastPressPixel(), getCurrentPixel() ).length() > 4 )
{
mScribbleArea->myTempTransformedSelection = mScribbleArea->myTransformedSelection.translated( mScribbleArea->mOffset );
}
break;
case ScribbleArea::TOPRIGHT:
mScribbleArea->myTempTransformedSelection =
mScribbleArea->myTransformedSelection.adjusted( 0, mScribbleArea->mOffset.y(), mScribbleArea->mOffset.x(), 0 );
break;
case ScribbleArea::TOPLEFT:
mScribbleArea->myTempTransformedSelection =
mScribbleArea->myTransformedSelection.adjusted( mScribbleArea->mOffset.x(), mScribbleArea->mOffset.y(), 0, 0 );
break;
// TOPRIGHT XXX
case ScribbleArea::BOTTOMLEFT:
mScribbleArea->myTempTransformedSelection =
mScribbleArea->myTransformedSelection.adjusted( mScribbleArea->mOffset.x(), 0, 0, mScribbleArea->mOffset.y() );
break;
case ScribbleArea::BOTTOMRIGHT:
mScribbleArea->myTempTransformedSelection =
mScribbleArea->myTransformedSelection.adjusted( 0, 0, mScribbleArea->mOffset.x(), mScribbleArea->mOffset.y() );
break;
case ScribbleArea::ROTATION:
mScribbleArea->myTempTransformedSelection =
mScribbleArea->myTransformedSelection; // @ necessary?
mScribbleArea->myRotatedAngle = getCurrentPixel().x() - getLastPressPixel().x();
//qDebug() << "rotation" << m_pScribbleArea->myRotatedAngle;
break;
}
mScribbleArea->calculateSelectionTransformation();
mScribbleArea->update();
mScribbleArea->setAllDirty();
}
}
else // there is nothing selected
{
// we switch to the select tool
mEditor->tools()->setCurrentTool( SELECT );
mScribbleArea->mMoveMode = ScribbleArea::MIDDLE;
mScribbleArea->mySelection.setTopLeft( getLastPoint() );
mScribbleArea->mySelection.setBottomRight( getLastPoint() );
mScribbleArea->setSelection( mScribbleArea->mySelection, true );
}
}
else // the user is moving the mouse without pressing it
{
if ( layer->type() == Layer::VECTOR )
{
auto layerVector = static_cast< LayerVector* >( layer );
VectorImage* pVecImg = layerVector->getLastVectorImageAtFrame( mEditor->currentFrame(), 0 );
mScribbleArea->mClosestCurves = pVecImg->getCurvesCloseTo( getCurrentPoint(), mScribbleArea->tol / mEditor->view()->scaling() );
}
mScribbleArea->update();
}
}