本文整理汇总了C++中composition函数的典型用法代码示例。如果您正苦于以下问题:C++ composition函数的具体用法?C++ composition怎么用?C++ composition使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了composition函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: composition
void QgsComposerView::selectInvert()
{
if ( !composition() )
{
return;
}
//check all items in composer
QList<QGraphicsItem *> itemList = composition()->items();
QList<QGraphicsItem *>::iterator itemIt = itemList.begin();
for ( ; itemIt != itemList.end(); ++itemIt )
{
QgsComposerItem* mypItem = dynamic_cast<QgsComposerItem *>( *itemIt );
QgsPaperItem* paperItem = dynamic_cast<QgsPaperItem*>( *itemIt );
if ( mypItem && !paperItem )
{
//flip selected state for items (and deselect any locked items)
if ( mypItem->selected() || mypItem->positionLock() )
{
mypItem->setSelected( false );
}
else
{
mypItem->setSelected( true );
emit selectedItemChanged( mypItem );
}
}
}
}
开发者ID:kiith-sa,项目名称:QGIS,代码行数:30,代码来源:qgscomposerview.cpp
示例2: mapToScene
void QgsComposerView::pasteItems( PasteMode mode )
{
if ( !composition() )
{
return;
}
QDomDocument doc;
QClipboard *clipboard = QApplication::clipboard();
if ( doc.setContent( clipboard->mimeData()->data( "text/xml" ) ) )
{
QDomElement docElem = doc.documentElement();
if ( docElem.tagName() == "ComposerItemClipboard" )
{
if ( composition() )
{
QPointF pt;
if ( mode == PasteModeCursor )
{
// place items at cursor position
pt = mapToScene( mapFromGlobal( QCursor::pos() ) );
}
else
{
// place items in center of viewport
pt = mapToScene( viewport()->rect().center() );
}
bool pasteInPlace = ( mode == PasteModeInPlace );
composition()->addItemsFromXML( docElem, doc, 0, true, &pt, pasteInPlace );
}
}
}
}
开发者ID:snorfalorpagus,项目名称:QGIS,代码行数:33,代码来源:qgscomposerview.cpp
示例3: theSize
void QgsComposerLegend::doUpdateFilterByMap()
{
if ( mComposerMap )
mLegendModel2->setLayerStyleOverrides( mComposerMap->layerStyleOverrides() );
else
mLegendModel2->setLayerStyleOverrides( QMap<QString, QString>() );
bool filterByExpression = QgsLayerTreeUtils::hasLegendFilterExpression( *( mCustomLayerTree ? mCustomLayerTree : QgsProject::instance()->layerTreeRoot() ) );
if ( mComposerMap && ( mLegendFilterByMap || filterByExpression || mInAtlas ) )
{
int dpi = mComposition->printResolution();
QgsRectangle requestRectangle;
mComposerMap->requestedExtent( requestRectangle );
QSizeF theSize( requestRectangle.width(), requestRectangle.height() );
theSize *= mComposerMap->mapUnitsToMM() * dpi / 25.4;
QgsMapSettings ms = mComposerMap->mapSettings( requestRectangle, theSize, dpi );
QgsGeometry filterPolygon;
if ( mInAtlas )
{
filterPolygon = composition()->atlasComposition().currentGeometry( composition()->mapSettings().destinationCrs() );
}
mLegendModel2->setLegendFilter( &ms, /* useExtent */ mInAtlas || mLegendFilterByMap, filterPolygon, /* useExpressions */ true );
}
else
mLegendModel2->setLegendFilterByMap( 0 );
}
开发者ID:freightTrein,项目名称:QGIS,代码行数:32,代码来源:qgscomposerlegend.cpp
示例4: if
void QgsComposerView::addShape( Tool currentTool )
{
QgsComposerShape::Shape shape = QgsComposerShape::Ellipse;
if ( currentTool == AddRectangle )
shape = QgsComposerShape::Rectangle;
else if ( currentTool == AddTriangle )
shape = QgsComposerShape::Triangle;
if ( !mRubberBandItem || mRubberBandItem->rect().width() < 0.1 || mRubberBandItem->rect().width() < 0.1 )
{
scene()->removeItem( mRubberBandItem );
delete mRubberBandItem;
mRubberBandItem = 0;
return;
}
if ( composition() )
{
QgsComposerShape* composerShape = new QgsComposerShape( mRubberBandItem->transform().dx(), mRubberBandItem->transform().dy(), mRubberBandItem->rect().width(), mRubberBandItem->rect().height(), composition() );
composerShape->setShapeType( shape );
composition()->addComposerShape( composerShape );
scene()->removeItem( mRubberBandItem );
delete mRubberBandItem;
mRubberBandItem = 0;
emit actionFinished();
composition()->pushAddRemoveCommand( composerShape, tr( "Shape added" ) );
}
}
开发者ID:andreasmitrou,项目名称:QGIS,代码行数:28,代码来源:qgscomposerview.cpp
示例5: pos
QPointF QgsComposerItem::pagePos() const
{
QPointF p = pos();
double h = composition()->paperHeight() + composition()->spaceBetweenPages();
p.ry() -= ( page() - 1 ) * h;
return p;
}
开发者ID:exlimit,项目名称:QGIS,代码行数:7,代码来源:qgscomposeritem.cpp
示例6: if
void QgsComposerView::addShape( Tool currentTool )
{
QgsComposerShape::Shape shape = QgsComposerShape::Ellipse;
if ( currentTool == AddRectangle )
shape = QgsComposerShape::Rectangle;
else if ( currentTool == AddTriangle )
shape = QgsComposerShape::Triangle;
if ( !mRubberBandItem || ( mRubberBandItem->rect().width() < 0.1 && mRubberBandItem->rect().height() < 0.1 ) )
{
removeRubberBand();
return;
}
if ( composition() )
{
QgsComposerShape* composerShape = new QgsComposerShape( mRubberBandItem->transform().dx(), mRubberBandItem->transform().dy(), mRubberBandItem->rect().width(), mRubberBandItem->rect().height(), composition() );
composerShape->setShapeType( shape );
//new shapes use symbol v2 by default
composerShape->setUseSymbolV2( true );
composition()->addComposerShape( composerShape );
removeRubberBand();
composition()->clearSelection();
composerShape->setSelected( true );
emit selectedItemChanged( composerShape );
emit actionFinished();
composition()->pushAddRemoveCommand( composerShape, tr( "Shape added" ) );
}
}
开发者ID:kiith-sa,项目名称:QGIS,代码行数:31,代码来源:qgscomposerview.cpp
示例7: composition
void QgsComposerItem::setItemPosition( double x, double y, double width, double height, ItemPositionMode itemPoint, bool posIncludesFrame, int page )
{
double upperLeftX = x;
double upperLeftY = y;
if ( page > 0 )
{
double h = composition()->paperHeight() + composition()->spaceBetweenPages();
upperLeftY += ( page - 1 ) * h;
}
//store the item position mode
mLastUsedPositionMode = itemPoint;
//adjust x-coordinate if placement is not done to a left point
if ( itemPoint == UpperMiddle || itemPoint == Middle || itemPoint == LowerMiddle )
{
upperLeftX -= width / 2.0;
}
else if ( itemPoint == UpperRight || itemPoint == MiddleRight || itemPoint == LowerRight )
{
upperLeftX -= width;
}
//adjust y-coordinate if placement is not done to an upper point
if ( itemPoint == MiddleLeft || itemPoint == Middle || itemPoint == MiddleRight )
{
upperLeftY -= height / 2.0;
}
else if ( itemPoint == LowerLeft || itemPoint == LowerMiddle || itemPoint == LowerRight )
{
upperLeftY -= height;
}
if ( posIncludesFrame )
{
//adjust position to account for frame size
if ( mItemRotation == 0 )
{
upperLeftX += estimatedFrameBleed();
upperLeftY += estimatedFrameBleed();
}
else
{
//adjust position for item rotation
QLineF lineToItemOrigin = QLineF( 0, 0, estimatedFrameBleed(), estimatedFrameBleed() );
lineToItemOrigin.setAngle( -45 - mItemRotation );
upperLeftX += lineToItemOrigin.x2();
upperLeftY += lineToItemOrigin.y2();
}
width -= 2 * estimatedFrameBleed();
height -= 2 * estimatedFrameBleed();
}
setSceneRect( QRectF( upperLeftX, upperLeftY, width, height ) );
}
开发者ID:VladimirZhandarov,项目名称:QGIS,代码行数:58,代码来源:qgscomposeritem.cpp
示例8: composition
void float2_param_t::set_value( const Imath::V2f& x)
{
float time = 1.0f;
if( composition())
time = composition()->frame();
set_value_at_time( x, time);
}
开发者ID:apextw,项目名称:Ramen,代码行数:9,代码来源:float2_param.cpp
示例9: switch
void QgsComposerView::setCurrentTool( QgsComposerView::Tool t )
{
mCurrentTool = t;
//update mouse cursor for current tool
if ( !composition() )
{
return;
}
switch ( t )
{
case QgsComposerView::Pan:
{
//lock cursor to prevent composer items changing it
composition()->setPreventCursorChange( true );
viewport()->setCursor( Qt::OpenHandCursor );
break;
}
case QgsComposerView::Zoom:
{
//lock cursor to prevent composer items changing it
composition()->setPreventCursorChange( true );
//set the cursor to zoom in
QPixmap myZoomQPixmap = QPixmap(( const char ** )( zoom_in ) );
QCursor zoomCursor = QCursor( myZoomQPixmap, 7, 7 );
viewport()->setCursor( zoomCursor );
break;
}
case QgsComposerView::AddArrow:
case QgsComposerView::AddHtml:
case QgsComposerView::AddMap:
case QgsComposerView::AddLegend:
case QgsComposerView::AddLabel:
case QgsComposerView::AddScalebar:
case QgsComposerView::AddPicture:
case QgsComposerView::AddRectangle:
case QgsComposerView::AddEllipse:
case QgsComposerView::AddTriangle:
case QgsComposerView::AddTable:
{
//using a drawing tool
//lock cursor to prevent composer items changing it
composition()->setPreventCursorChange( true );
QPixmap myCrosshairQPixmap = QPixmap(( const char ** )( cross_hair_cursor ) );
QCursor crosshairCursor = QCursor( myCrosshairQPixmap, 8, 8 );
viewport()->setCursor( crosshairCursor );
break;
}
default:
{
//not using pan tool, composer items can change cursor
composition()->setPreventCursorChange( false );
viewport()->setCursor( Qt::ArrowCursor );
}
}
}
开发者ID:kiith-sa,项目名称:QGIS,代码行数:56,代码来源:qgscomposerview.cpp
示例10: composition
void QgsComposerView::keyPressEvent( QKeyEvent * e )
{
if ( !composition() )
{
return;
}
QList<QgsComposerItem*> composerItemList = composition()->selectedComposerItems();
QList<QgsComposerItem*>::iterator itemIt = composerItemList.begin();
// increment used for cursor key item movement
double increment = 1.0;
if ( e->modifiers() & Qt::ShiftModifier )
{
//holding shift while pressing cursor keys results in a big step
increment = 10.0;
}
if ( e->key() == Qt::Key_Left )
{
for ( ; itemIt != composerItemList.end(); ++itemIt )
{
( *itemIt )->beginCommand( tr( "Item moved" ), QgsComposerMergeCommand::ItemMove );
( *itemIt )->move( -1 * increment, 0.0 );
( *itemIt )->endCommand();
}
}
else if ( e->key() == Qt::Key_Right )
{
for ( ; itemIt != composerItemList.end(); ++itemIt )
{
( *itemIt )->beginCommand( tr( "Item moved" ), QgsComposerMergeCommand::ItemMove );
( *itemIt )->move( increment, 0.0 );
( *itemIt )->endCommand();
}
}
else if ( e->key() == Qt::Key_Down )
{
for ( ; itemIt != composerItemList.end(); ++itemIt )
{
( *itemIt )->beginCommand( tr( "Item moved" ), QgsComposerMergeCommand::ItemMove );
( *itemIt )->move( 0.0, increment );
( *itemIt )->endCommand();
}
}
else if ( e->key() == Qt::Key_Up )
{
for ( ; itemIt != composerItemList.end(); ++itemIt )
{
( *itemIt )->beginCommand( tr( "Item moved" ), QgsComposerMergeCommand::ItemMove );
( *itemIt )->move( 0.0, -1 * increment );
( *itemIt )->endCommand();
}
}
}
开发者ID:andreasmitrou,项目名称:QGIS,代码行数:55,代码来源:qgscomposerview.cpp
示例11: QgsAddRemoveItemCommand
void QgsComposerView::pushAddRemoveCommand( QgsComposerItem* item, const QString& text, QgsAddRemoveItemCommand::State state )
{
if ( !composition() )
{
return;
}
QgsAddRemoveItemCommand* c = new QgsAddRemoveItemCommand( state, item, composition(), text );
connectAddRemoveCommandSignals( c );
composition()->undoStack()->push( c );
}
开发者ID:CzendaZdenda,项目名称:qgis,代码行数:11,代码来源:qgscomposerview.cpp
示例12: switch
void QgsComposerView::setCurrentTool( QgsComposerView::Tool t )
{
mCurrentTool = t;
//update mouse cursor for current tool
if ( !composition() )
{
return;
}
switch ( t )
{
case QgsComposerView::Pan:
{
//lock cursor to prevent composer items changing it
composition()->setPreventCursorChange( true );
viewport()->setCursor( defaultCursorForTool( Pan ) );
break;
}
case QgsComposerView::Zoom:
{
//lock cursor to prevent composer items changing it
composition()->setPreventCursorChange( true );
//set the cursor to zoom in
viewport()->setCursor( defaultCursorForTool( Zoom ) );
break;
}
case QgsComposerView::AddArrow:
case QgsComposerView::AddHtml:
case QgsComposerView::AddMap:
case QgsComposerView::AddLegend:
case QgsComposerView::AddLabel:
case QgsComposerView::AddScalebar:
case QgsComposerView::AddPicture:
case QgsComposerView::AddRectangle:
case QgsComposerView::AddEllipse:
case QgsComposerView::AddTriangle:
case QgsComposerView::AddTable:
{
//using a drawing tool
//lock cursor to prevent composer items changing it
composition()->setPreventCursorChange( true );
viewport()->setCursor( defaultCursorForTool( mCurrentTool ) );
break;
}
default:
{
//not using pan tool, composer items can change cursor
composition()->setPreventCursorChange( false );
viewport()->setCursor( Qt::ArrowCursor );
}
}
}
开发者ID:dgstl,项目名称:QGIS,代码行数:52,代码来源:qgscomposerview.cpp
示例13: composition
void QgsLayoutView::deleteSelectedItems()
{
if ( !currentLayout() )
{
return;
}
#if 0 //TODO
if ( mCurrentTool == QgsComposerView::EditNodesItem )
{
if ( mNodesItemIndex != -1 )
{
composition()->beginCommand( mNodesItem, tr( "Remove item node" ) );
if ( mNodesItem->removeNode( mNodesItemIndex ) )
{
composition()->endCommand();
if ( mNodesItem->nodesSize() > 0 )
{
mNodesItemIndex = mNodesItem->selectedNode();
// setSelectedNode( mNodesItem, mNodesItemIndex );
}
else
{
mNodesItemIndex = -1;
mNodesItem = nullptr;
}
scene()->update();
}
else
{
composition()->cancelCommand();
}
}
}
else
{
#endif
const QList<QgsLayoutItem *> selectedItems = currentLayout()->selectedLayoutItems();
currentLayout()->undoStack()->beginMacro( tr( "Delete Items" ) );
//delete selected items
for ( QgsLayoutItem *item : selectedItems )
{
currentLayout()->removeLayoutItem( item );
}
currentLayout()->undoStack()->endMacro();
currentLayout()->project()->setDirty( true );
#if 0
}
#endif
}
开发者ID:giohappy,项目名称:QGIS,代码行数:52,代码来源:qgslayoutview.cpp
示例14: viewport
void QgsComposerView::keyReleaseEvent( QKeyEvent * e )
{
if ( e->key() == Qt::Key_Space && !e->isAutoRepeat() && mPanning )
{
//end of panning with space key
mPanning = false;
//reset cursor
if ( mCurrentTool == Pan )
{
viewport()->setCursor( Qt::OpenHandCursor );
}
else
{
if ( composition() )
{
//allow cursor changes again
composition()->setPreventCursorChange( false );
}
viewport()->setCursor( Qt::ArrowCursor );
}
return;
}
else if ( e->key() == Qt::Key_Space && !e->isAutoRepeat() && mTemporaryZoomStatus != QgsComposerView::Inactive )
{
//temporary keyboard-based zoom tool is active and space key has been released
if ( mMarqueeZoom )
{
//currently in the middle of a marquee operation, so don't switch tool back immediately
//instead, wait until mouse button has been released before switching tool back
mTemporaryZoomStatus = QgsComposerView::ActiveUntilMouseRelease;
}
else
{
//switch tool back
mTemporaryZoomStatus = QgsComposerView::Inactive;
setCurrentTool( mPreviousTool );
}
}
else if ( mCurrentTool == QgsComposerView::Zoom )
{
//if zoom tool is active, respond to changes in the shift key status and update cursor accordingly
if ( ! e->isAutoRepeat() )
{
QPixmap myZoomQPixmap = QPixmap(( const char ** )( e->modifiers() & Qt::ShiftModifier ? zoom_out : zoom_in ) );
QCursor zoomCursor = QCursor( myZoomQPixmap, 7, 7 );
viewport()->setCursor( zoomCursor );
}
return;
}
}
开发者ID:kiith-sa,项目名称:QGIS,代码行数:51,代码来源:qgscomposerview.cpp
示例15: RAMEN_ASSERT
void corner_pin_node_t::param_changed( param_t *p, param_t::change_reason reason)
{
RAMEN_ASSERT( composition());
if( reason == param_t::user_edited && p == ¶m( "apply_track"))
{
const tracker_node_t *tracker = ui::apply_corner_track_dialog_t::instance().exec();
if( tracker)
{
float2_param_t *topleft = dynamic_cast<float2_param_t*>( ¶m( "topleft"));
float2_param_t *topright = dynamic_cast<float2_param_t*>( ¶m( "topright"));
float2_param_t *botleft = dynamic_cast<float2_param_t*>( ¶m( "botleft"));
float2_param_t *botright = dynamic_cast<float2_param_t*>( ¶m( "botright"));
float start_frame = composition()->start_frame();
float end_frame = composition()->end_frame();
param_set().begin_edit();
for( float frame = start_frame; frame <= end_frame; frame += 1.0f)
{
boost::optional<Imath::V2f> p = tracker->tracker_pos( 0, frame);
if( p)
topleft->set_absolute_value_at_frame( p.get(), frame);
p = tracker->tracker_pos( 1, frame);
if( p)
topright->set_absolute_value_at_frame( p.get(), frame);
p = tracker->tracker_pos( 2, frame);
if( p)
botright->set_absolute_value_at_frame( p.get(), frame);
p = tracker->tracker_pos( 3, frame);
if( p)
botleft->set_absolute_value_at_frame( p.get(), frame);
}
param_set().end_edit();
update_widgets();
}
}
}
开发者ID:JohanAberg,项目名称:Ramen,代码行数:48,代码来源:corner_pin_node.cpp
示例16: composition
void VirtualCompositorWorker::QueueComposite(hwc_display_contents_1_t *dc) {
std::unique_ptr<VirtualComposition> composition(new VirtualComposition);
composition->outbuf_acquire_fence.Set(dc->outbufAcquireFenceFd);
dc->outbufAcquireFenceFd = -1;
if (dc->retireFenceFd >= 0)
close(dc->retireFenceFd);
dc->retireFenceFd = CreateNextTimelineFence();
for (size_t i = 0; i < dc->numHwLayers; ++i) {
hwc_layer_1_t *layer = &dc->hwLayers[i];
if (layer->flags & HWC_SKIP_LAYER)
continue;
composition->layer_acquire_fences.emplace_back(layer->acquireFenceFd);
layer->acquireFenceFd = -1;
if (layer->releaseFenceFd >= 0)
close(layer->releaseFenceFd);
layer->releaseFenceFd = CreateNextTimelineFence();
}
composition->release_timeline = timeline_;
Lock();
while (composite_queue_.size() >= kMaxQueueDepth) {
Unlock();
sched_yield();
Lock();
}
composite_queue_.push(std::move(composition));
SignalLocked();
Unlock();
}
开发者ID:vlinhd11,项目名称:external_drm_hwcomposer,代码行数:33,代码来源:virtualcompositorworker.cpp
示例17: composition
// composition, combine two substitutions
Substitution
Substitution::operator*(const Substitution &s) const
{
Substitution composition(*this);
MustBeTrue(s.applyTo(composition.term) == OK);
return(composition);
}
开发者ID:ombt,项目名称:ombt,代码行数:8,代码来源:substitution.c
示例18: mapToScene
void QgsComposerView::wheelEvent( QWheelEvent* event )
{
if ( currentTool() == MoveItemContent )
{
//move item content tool, so scroll events get handled by the selected composer item
QPointF scenePoint = mapToScene( event->pos() );
//select topmost item at position of event
QgsComposerItem* theItem = composition()->composerItemAt( scenePoint );
if ( theItem )
{
if ( theItem->isSelected() )
{
QPointF itemPoint = theItem->mapFromScene( scenePoint );
theItem->beginCommand( tr( "Zoom item content" ) );
theItem->zoomContent( event->delta(), itemPoint.x(), itemPoint.y() );
theItem->endCommand();
}
}
}
else
{
//not using move item content tool, so zoom whole composition
wheelZoom( event );
}
}
开发者ID:kiith-sa,项目名称:QGIS,代码行数:26,代码来源:qgscomposerview.cpp
示例19: Q_UNUSED
void QgsComposerItem::updatePagePos( double newPageWidth, double newPageHeight )
{
Q_UNUSED( newPageWidth )
QPointF curPagePos = pagePos();
int curPage = page() - 1;
setY( curPage * ( newPageHeight + composition()->spaceBetweenPages() ) + curPagePos.y() );
emit sizeChanged();
}
开发者ID:VladimirZhandarov,项目名称:QGIS,代码行数:8,代码来源:qgscomposeritem.cpp
示例20: getRandomWhiteheadAuto
Map RMap::getRandomAuto( int nOfGens, int len )
{
Map m = getRandomWhiteheadAuto(nOfGens);
for (int i=1;i<len;i++)
m = composition( m, getRandomWhiteheadAuto( nOfGens ));
return m;
}
开发者ID:stevens-crag,项目名称:crag,代码行数:8,代码来源:Map.cpp
注:本文中的composition函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论