本文整理汇总了C++中VectorImage::getSelectionRect方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorImage::getSelectionRect方法的具体用法?C++ VectorImage::getSelectionRect怎么用?C++ VectorImage::getSelectionRect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VectorImage
的用法示例。
在下文中一共展示了VectorImage::getSelectionRect方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mouseReleaseEvent
void SelectTool::mouseReleaseEvent( QMouseEvent *event )
{
Layer *layer = mEditor->layers()->currentLayer();
if ( layer == NULL ) { return; }
if ( event->button() == Qt::LeftButton )
{
if ( layer->type() == Layer::VECTOR )
{
if ( mScribbleArea->somethingSelected )
{
mEditor->tools()->setCurrentTool( MOVE );
VectorImage *vectorImage = ( ( LayerVector * )layer )->getLastVectorImageAtFrame( mEditor->currentFrame(), 0 );
mScribbleArea->setSelection( vectorImage->getSelectionRect(), true );
if ( mScribbleArea->mySelection.size() == QSizeF( 0, 0 ) )
{
mScribbleArea->somethingSelected = false;
}
}
mScribbleArea->updateCurrentFrame();
mScribbleArea->setAllDirty();
}
else if ( layer->type() == Layer::BITMAP )
{
mScribbleArea->updateCurrentFrame();
mScribbleArea->setAllDirty();
}
}
}
示例2: paste
void Editor::paste()
{
if((cutFlag||copyFlag)&&layers()->currentLayerIndex()>2)
{
newBitmapLayer();
}
Layer* layer = mObject->getLayer( layers()->currentLayerIndex() );
if ( layer != NULL )
{
if ( layer->type() == Layer::BITMAP && g_clipboardBitmapImage.image() != NULL )
{
backup( tr( "Paste" ) );
BitmapImage tobePasted = g_clipboardBitmapImage.copy();
qDebug() << "to be pasted --->" << tobePasted.image()->size();
if ( mScribbleArea->somethingSelected )
{
QRectF selection = mScribbleArea->getSelection();
if ( g_clipboardBitmapImage.width() <= selection.width() && g_clipboardBitmapImage.height() <= selection.height() )
{
tobePasted.moveTopLeft( selection.topLeft() );
}
else
{
tobePasted.transform( selection, true );
}
}
auto pLayerBitmap = static_cast< LayerBitmap* >( layer );
pLayerBitmap->getLastBitmapImageAtFrame( currentFrame(), 0 )->paste( &tobePasted ); // paste the clipboard
}
else if ( layer->type() == Layer::VECTOR && clipboardVectorOk )
{
backup( tr( "Paste" ) );
mScribbleArea->deselectAll();
VectorImage* vectorImage = ( ( LayerVector* )layer )->getLastVectorImageAtFrame( currentFrame(), 0 );
vectorImage->paste( g_clipboardVectorImage ); // paste the clipboard
mScribbleArea->setSelection( vectorImage->getSelectionRect(), true );
//((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0)->modification(); ????
}
}
mScribbleArea->updateCurrentFrame();
if((cutFlag&&!mScribbleArea->somethingSelected)||(copyFlag&&mScribbleArea->somethingSelected))
{
mScribbleArea->mySelection=cutArea;
mScribbleArea->setSelection( mScribbleArea->mySelection, true );
mScribbleArea->myTransformedSelection = mScribbleArea->mySelection.adjusted( 0, 0, 0, 0 );
mScribbleArea->myTempTransformedSelection = mScribbleArea->mySelection.adjusted( 0, 0, 0, 0 );
mScribbleArea->update();
mScribbleArea->mIncludeImg[mLayerManager->currentLayerIndex()]=mScribbleArea->mySelection;
tools()->setCurrentTool(MOVE);
}
cutFlag =0;
copyFlag =0;
}
示例3: paste
void Editor::paste()
{
Layer* layer = mObject->getLayer( layers()->currentLayerIndex() );
if ( layer != NULL )
{
if ( layer->type() == Layer::BITMAP && g_clipboardBitmapImage.image() != NULL )
{
backup( tr( "Paste" ) );
BitmapImage tobePasted = g_clipboardBitmapImage.copy();
qDebug() << "to be pasted --->" << tobePasted.image()->size();
if ( mScribbleArea->somethingSelected )
{
QRectF selection = mScribbleArea->getSelection();
if ( g_clipboardBitmapImage.width() <= selection.width() && g_clipboardBitmapImage.height() <= selection.height() )
{
tobePasted.moveTopLeft( selection.topLeft() );
}
else
{
tobePasted.transform( selection, true );
}
}
auto pLayerBitmap = static_cast< LayerBitmap* >( layer );
pLayerBitmap->getLastBitmapImageAtFrame( currentFrame(), 0 )->paste( &tobePasted ); // paste the clipboard
}
else if ( layer->type() == Layer::VECTOR && clipboardVectorOk )
{
backup( tr( "Paste" ) );
mScribbleArea->deselectAll();
VectorImage* vectorImage = ( ( LayerVector* )layer )->getLastVectorImageAtFrame( currentFrame(), 0 );
vectorImage->paste( g_clipboardVectorImage ); // paste the clipboard
mScribbleArea->setSelection( vectorImage->getSelectionRect(), true );
//((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0)->modification(); ????
}
}
mScribbleArea->updateCurrentFrame();
}
示例4: mousePressEvent
void MoveTool::mousePressEvent( QMouseEvent *event )
{
Layer *layer = mEditor->layers()->currentLayer();
if ( layer == NULL ) {
return;
}
if ( event->button() == Qt::LeftButton )
{
// ----------------------------------------------------------------------
if ( (layer->type() == Layer::BITMAP || layer->type() == Layer::VECTOR) )
{
mEditor->backup( tr( "Move" ) );
mScribbleArea->setMoveMode( ScribbleArea::MIDDLE );
if ( mScribbleArea->somethingSelected ) // there is an area selection
{
if ( BezierCurve::mLength( getLastPoint() - mScribbleArea->myTransformedSelection.topLeft() ) < 6 )
{
mScribbleArea->setMoveMode( ScribbleArea::TOPLEFT );
}
if ( BezierCurve::mLength( getLastPoint() - mScribbleArea->myTransformedSelection.topRight() ) < 6 )
{
mScribbleArea->setMoveMode( ScribbleArea::TOPRIGHT );
}
if ( BezierCurve::mLength( getLastPoint() - mScribbleArea->myTransformedSelection.bottomLeft() ) < 6 )
{
mScribbleArea->setMoveMode( ScribbleArea::BOTTOMLEFT );
}
if ( BezierCurve::mLength( getLastPoint() - mScribbleArea->myTransformedSelection.bottomRight() ) < 6 )
{
mScribbleArea->setMoveMode( ScribbleArea::BOTTOMRIGHT );
}
}
if ( mScribbleArea->getMoveMode() == ScribbleArea::MIDDLE )
{
if ( layer->type() == Layer::BITMAP )
{
if ( !(mScribbleArea->myTransformedSelection.contains( getLastPoint() )) ) // click is outside the transformed selection with the MOVE tool
{
mScribbleArea->paintTransformedSelection();
mScribbleArea->deselectAll();
}
else if ( event->modifiers() == Qt::ControlModifier ) // --- rotation
{
mScribbleArea->setMoveMode( ScribbleArea::ROTATION );
//qDebug() << "ROTATION";
}
else if (event->modifiers() == Qt::AltModifier ) // --- symmetry
{
mScribbleArea->setMoveMode(ScribbleArea::SYMMETRY );
//qDebug() << "SYMMETRY";
}
}
else if ( layer->type() == Layer::VECTOR )
{
VectorImage *vectorImage = ((LayerVector *)layer)->getLastVectorImageAtFrame( mEditor->currentFrame(), 0 );
if ( mScribbleArea->mClosestCurves.size() > 0 ) // the user clicks near a curve
{
// editor->backup();
if ( !vectorImage->isSelected( mScribbleArea->mClosestCurves ) )
{
mScribbleArea->paintTransformedSelection();
if ( event->modifiers() != Qt::ShiftModifier )
{
mScribbleArea->deselectAll();
}
vectorImage->setSelected( mScribbleArea->mClosestCurves, true );
mScribbleArea->setSelection( vectorImage->getSelectionRect(), true );
mScribbleArea->update();
}
}
else
{
int areaNumber = vectorImage->getLastAreaNumber( getLastPoint() );
if ( areaNumber != -1 ) // the user clicks on an area
{
if ( !vectorImage->isAreaSelected( areaNumber ) )
{
if ( event->modifiers() != Qt::ShiftModifier )
{
mScribbleArea->deselectAll();
}
vectorImage->setAreaSelected( areaNumber, true );
//setSelection( vectorImage->getSelectionRect() );
mScribbleArea->setSelection( QRectF( 0, 0, 0, 0 ), true );
mScribbleArea->update();
}
}
else // the user doesn't click near a curve or an area
{
if ( !(mScribbleArea->myTransformedSelection.contains( getLastPoint() )) ) // click is outside the transformed selection with the MOVE tool
{
mScribbleArea->paintTransformedSelection();
mScribbleArea->deselectAll();
}
}
}
}
//.........这里部分代码省略.........