public INodeInfo Clone(INodeInfo nodeInfo, string path, string name, string category, string version) { if (!(nodeInfo is ProxyNodeInfo)) { nodeInfo = NodeInfoFactory.ToProxy(nodeInfo); } try { foreach (var factory in AddonFactories) { INodeInfo newNodeInfo; if (factory.Clone(nodeInfo, path, name, category, version, out newNodeInfo)) { return(NodeInfoFactory.ToInternal(newNodeInfo)); } } } catch (Exception e) { Logger.Log(e); } return(null); }
public bool DestroyNode(INode node) { var nodeInfo = NodeInfoFactory.ToProxy(node.GetNodeInfo()); var factory = nodeInfo.Factory; if (factory.Delete(nodeInfo, node)) { return(true); } return(false); }
public void ExtractNodeInfos(string filename, string arguments, out INodeInfo[] result) { HashSet <ProxyNodeInfo> nodeInfos = null; nodeInfos = LoadNodeInfos(filename, arguments); //convert to internal and write into result result = new INodeInfo[nodeInfos.Count]; var i = 0; foreach (var info in nodeInfos) { result[i++] = NodeInfoFactory.ToInternal(info); } }
// Return false if the wrapper should be deleted by vvvv. Used for example // by the EditorFactory if an editor is already opened. public bool CreateNode(INode node) { var nodeInfo = NodeInfoFactory.ToProxy(node.GetNodeInfo()); // Workaround for null pointer in DX11 - it expects the UserData field to be set if (nodeInfo.UserData == null && nodeInfo.Factory != null) { var factoryType = nodeInfo.Factory.GetType(); if (factoryType.Name.StartsWith("DX11") && factoryType.BaseType != null && factoryType.BaseType.Name.StartsWith("AbstractDX11ShaderFactory")) { nodeInfo.Factory.ExtractNodeInfos(nodeInfo.Filename, null); } } return(nodeInfo.Factory.Create(nodeInfo, node)); }
// Return false if the wrapper should be deleted by vvvv. Used for example // by the EditorFactory if an editor is already opened. public bool CreateNode(INode node) { var nodeInfo = NodeInfoFactory.ToProxy(node.GetNodeInfo()); return(nodeInfo.Factory.Create(nodeInfo, node)); }