本文整理汇总了C++中NodeGuiPtr::getDagGui方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeGuiPtr::getDagGui方法的具体用法?C++ NodeGuiPtr::getDagGui怎么用?C++ NodeGuiPtr::getDagGui使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NodeGuiPtr
的用法示例。
在下文中一共展示了NodeGuiPtr::getDagGui方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: menu
void
NodeSettingsPanel::onSettingsButtonClicked()
{
Menu menu(this);
//menu.setFont(QFont(appFont,appFontSize));
NodeGuiPtr node = getNode();
NodePtr master = node->getNode()->getMasterNode();
QAction* importPresets = new QAction(tr("Import presets"), &menu);
QObject::connect( importPresets, SIGNAL(triggered()), this, SLOT(onImportPresetsActionTriggered()) );
QAction* exportAsPresets = new QAction(tr("Export as presets"), &menu);
QObject::connect( exportAsPresets, SIGNAL(triggered()), this, SLOT(onExportPresetsActionTriggered()) );
menu.addAction(importPresets);
menu.addAction(exportAsPresets);
menu.addSeparator();
QAction* manageUserParams = new QAction(tr("Manage user parameters..."), &menu);
QObject::connect( manageUserParams, SIGNAL(triggered()), this, SLOT(onManageUserParametersActionTriggered()) );
menu.addAction(manageUserParams);
menu.addSeparator();
QAction* setKeyOnAll = new QAction(tr("Set key on all parameters"), &menu);
QObject::connect( setKeyOnAll, SIGNAL(triggered()), this, SLOT(setKeyOnAllParameters()) );
QAction* removeAnimationOnAll = new QAction(tr("Remove animation on all parameters"), &menu);
QObject::connect( removeAnimationOnAll, SIGNAL(triggered()), this, SLOT(removeAnimationOnAllParameters()) );
menu.addAction(setKeyOnAll);
menu.addAction(removeAnimationOnAll);
if ( master || !node->getDagGui() || !node->getDagGui()->getGui() || node->getDagGui()->getGui()->isGUIFrozen() ) {
importPresets->setEnabled(false);
exportAsPresets->setEnabled(false);
setKeyOnAll->setEnabled(false);
removeAnimationOnAll->setEnabled(false);
}
menu.exec( _settingsButton->mapToGlobal( _settingsButton->pos() ) );
}
示例2: k
void
NodeGraph::refreshNodeLinksNow()
{
// First clear all previous links
for (NodeGraphPrivate::LinkedNodesList::const_iterator it = _imp->linkedNodes.begin(); it != _imp->linkedNodes.end(); ++it) {
delete it->arrow;
}
_imp->linkedNodes.clear();
if (!_imp->_knobLinksVisible) {
return;
}
NodesGuiList nodes;
{
QMutexLocker k(&_imp->_nodesMutex);
nodes = _imp->_nodes;
}
QColor simpleLinkColor, cloneLinkColor;
{
double exprColor[3], cloneColor[3];
appPTR->getCurrentSettings()->getExprColor(&exprColor[0], &exprColor[1], &exprColor[2]);
appPTR->getCurrentSettings()->getCloneColor(&cloneColor[0], &cloneColor[1], &cloneColor[2]);
simpleLinkColor.setRgbF(Image::clamp(exprColor[0], 0., 1.),
Image::clamp(exprColor[1], 0., 1.),
Image::clamp(exprColor[2], 0., 1.));
cloneLinkColor.setRgbF(Image::clamp(cloneColor[0], 0., 1.),
Image::clamp(cloneColor[1], 0., 1.),
Image::clamp(cloneColor[2], 0., 1.));
}
for (NodesGuiList::const_iterator it = nodes.begin(); it!=nodes.end(); ++it) {
NodePtr thisNode = (*it)->getNode();
std::list<std::pair<NodePtr, bool> > linkedNodes;
thisNode->getLinkedNodes(&linkedNodes);
for (std::list<std::pair<NodePtr, bool> >::const_iterator it2 = linkedNodes.begin(); it2 != linkedNodes.end(); ++it2) {
// If the linked node doesn't have a gui or it is not part of this nodegraph don't create a link at all
NodeGuiPtr otherNodeGui = toNodeGui(it2->first->getNodeGui());
if (!otherNodeGui || otherNodeGui->getDagGui() != this) {
continue;
}
// Try to find an existing link
NodeGraphPrivate::LinkedNodes link;
link.nodes[0] = thisNode;
link.nodes[1] = it2->first;
link.isCloneLink = it2->second;
NodeGraphPrivate::LinkedNodesList::iterator foundExistingLink = _imp->linkedNodes.end();
{
for (NodeGraphPrivate::LinkedNodesList::iterator it = _imp->linkedNodes.begin(); it != _imp->linkedNodes.end(); ++it) {
NodePtr a1 = it->nodes[0].lock();
NodePtr a2 = it->nodes[1].lock();
NodePtr b1 = link.nodes[0].lock();
NodePtr b2 = link.nodes[1].lock();
if ((a1 == b1 || a1 == b2) &&
(a2 == b1 || a2 == b2)) {
foundExistingLink = it;
break;
}
}
}
if (foundExistingLink == _imp->linkedNodes.end()) {
// A link did not exist, create it
link.arrow = new LinkArrow( otherNodeGui, *it, (*it)->parentItem() );
link.arrow->setWidth(2);
link.arrow->setArrowHeadVisible(false);
if (link.isCloneLink) {
link.arrow->setColor(cloneLinkColor);
} else {
link.arrow->setColor(simpleLinkColor);
}
_imp->linkedNodes.push_back(link);
} else {
// A link existed, if this is a clone link and it was not before, upgrade it
if (!foundExistingLink->isCloneLink && link.isCloneLink) {
foundExistingLink->arrow->setColor(cloneLinkColor);
}
}
}
(*it)->refreshLinkIndicators(linkedNodes);
}
} // refreshNodeLinksNow
示例3: logic_error
void
GuiAppInstance::createNodeGui(const NodePtr &node,
const NodePtr& parentMultiInstance,
const CreateNodeArgs& args)
{
boost::shared_ptr<NodeCollection> group = node->getGroup();
NodeGraph* graph;
if (group) {
NodeGraphI* graph_i = group->getNodeGraph();
assert(graph_i);
graph = dynamic_cast<NodeGraph*>(graph_i);
assert(graph);
} else {
graph = _imp->_gui->getNodeGraph();
}
if (!graph) {
throw std::logic_error("");
}
NodesGuiList selectedNodes = graph->getSelectedNodes();
NodeGuiPtr nodegui = _imp->_gui->createNodeGUI(node, args);
assert(nodegui);
if (parentMultiInstance && nodegui) {
nodegui->hideGui();
boost::shared_ptr<NodeGuiI> parentNodeGui_i = parentMultiInstance->getNodeGui();
assert(parentNodeGui_i);
nodegui->setParentMultiInstance( boost::dynamic_pointer_cast<NodeGui>(parentNodeGui_i) );
}
///It needs to be here because we rely on the _nodeMapping member
bool isViewer = node->isEffectViewer() != 0;
if (isViewer) {
_imp->_gui->createViewerGui(node);
}
///must be done after the viewer gui has been created
if ( node->isRotoPaintingNode() ) {
_imp->_gui->createNewRotoInterface( nodegui.get() );
}
if ( ( node->isTrackerNodePlugin() || node->getEffectInstance()->isBuiltinTrackerNode() ) && !parentMultiInstance ) {
_imp->_gui->createNewTrackerInterface( nodegui.get() );
}
NodeGroup* isGroup = node->isEffectGroup();
if ( isGroup && isGroup->isSubGraphUserVisible() ) {
_imp->_gui->createGroupGui(node, args.reason);
}
///Don't initialize inputs if it is a multi-instance child since it is not part of the graph
if (!parentMultiInstance) {
nodegui->initializeInputs();
}
if ( (args.reason == eCreateNodeReasonUserCreate) && !isViewer ) {
///we make sure we can have a clean preview.
node->computePreviewImage( getTimeLine()->currentFrame() );
triggerAutoSave();
}
///only move main instances
if ( node->getParentMultiInstanceName().empty() ) {
bool autoConnect = args.reason == eCreateNodeReasonUserCreate;
if ( selectedNodes.empty() ) {
autoConnect = false;
}
if ( (args.xPosHint != INT_MIN) && (args.yPosHint != INT_MIN) && (!autoConnect) ) {
QPointF pos = nodegui->mapToParent( nodegui->mapFromScene( QPointF(args.xPosHint, args.yPosHint) ) );
nodegui->refreshPosition( pos.x(), pos.y(), true );
} else {
BackdropGui* isBd = dynamic_cast<BackdropGui*>( nodegui.get() );
if (!isBd) {
NodeGuiPtr selectedNode;
if ( (args.reason == eCreateNodeReasonUserCreate) && (selectedNodes.size() == 1) ) {
selectedNode = selectedNodes.front();
BackdropGui* isBackdropGui = dynamic_cast<BackdropGui*>( selectedNode.get() );
if (isBackdropGui) {
selectedNode.reset();
}
}
nodegui->getDagGui()->moveNodesForIdealPosition(nodegui, selectedNode, autoConnect);
}
}
}
} // createNodeGui
示例4: logic_error
void
GuiAppInstance::createNodeGui(const NodePtr &node,
const NodePtr& parentMultiInstance,
const CreateNodeArgs& args)
{
NodeCollectionPtr group = node->getGroup();
NodeGraph* graph;
if (group) {
NodeGraphI* graph_i = group->getNodeGraph();
assert(graph_i);
graph = dynamic_cast<NodeGraph*>(graph_i);
assert(graph);
} else {
graph = _imp->_gui->getNodeGraph();
}
if (!graph) {
throw std::logic_error("");
}
NodesGuiList selectedNodes = graph->getSelectedNodes();
NodeGuiPtr nodegui = _imp->_gui->createNodeGUI(node, args);
assert(nodegui);
if (parentMultiInstance && nodegui) {
nodegui->hideGui();
NodeGuiIPtr parentNodeGui_i = parentMultiInstance->getNodeGui();
assert(parentNodeGui_i);
nodegui->setParentMultiInstance( boost::dynamic_pointer_cast<NodeGui>(parentNodeGui_i) );
}
bool isViewer = node->isEffectViewerInstance() != 0;
if (isViewer) {
_imp->_gui->createViewerGui(node);
}
// Must be done after the viewer gui has been created
_imp->_gui->createNodeViewerInterface(nodegui);
NodeGroupPtr isGroup = node->isEffectNodeGroup();
if ( isGroup && isGroup->isSubGraphUserVisible() ) {
_imp->_gui->createGroupGui(node, args);
}
///Don't initialize inputs if it is a multi-instance child since it is not part of the graph
if (!parentMultiInstance) {
nodegui->initializeInputs();
}
NodeSerializationPtr serialization = args.getProperty<NodeSerializationPtr >(kCreateNodeArgsPropNodeSerialization);
if ( !serialization && !isViewer ) {
///we make sure we can have a clean preview.
node->computePreviewImage( getTimeLine()->currentFrame() );
triggerAutoSave();
}
///only move main instances
if ( node->getParentMultiInstanceName().empty() && !serialization) {
bool autoConnect = args.getProperty<bool>(kCreateNodeArgsPropAutoConnect);
if ( selectedNodes.empty() || serialization) {
autoConnect = false;
}
double xPosHint = serialization ? INT_MIN : args.getProperty<double>(kCreateNodeArgsPropNodeInitialPosition, 0);
double yPosHint = serialization ? INT_MIN : args.getProperty<double>(kCreateNodeArgsPropNodeInitialPosition, 1);
if ( (xPosHint != INT_MIN) && (yPosHint != INT_MIN) && (!autoConnect) ) {
QPointF pos = nodegui->mapToParent( nodegui->mapFromScene( QPointF(xPosHint, yPosHint) ) );
nodegui->refreshPosition( pos.x(), pos.y(), true );
} else {
BackdropGuiPtr isBd = toBackdropGui(nodegui);
if (!isBd) {
NodeGuiPtr selectedNode;
if ( !serialization && (selectedNodes.size() == 1) ) {
selectedNode = selectedNodes.front();
BackdropGuiPtr isBdGui = toBackdropGui(selectedNode);
if (isBdGui) {
selectedNode.reset();
}
}
nodegui->getDagGui()->moveNodesForIdealPosition(nodegui, selectedNode, autoConnect);
}
}
}
} // createNodeGui