110 vector<VuoNode *> nodes = parserCopy->
getNodes();
111 for (vector<VuoNode *>::iterator node = nodes.begin(); node != nodes.end(); ++node)
115 if ((*node)->hasCompiler())
117 string nodeIdentifierPrefix = (*node)->getCompiler()->getGraphvizIdentifierPrefix() +
"_Driver";
125 vector<VuoCable *> cables = parserCopy->
getCables();
126 for (vector<VuoCable *>::iterator cable = cables.begin(); cable != cables.end(); ++cable)
127 if (! (*cable)->isPublished())
132 for (vector<VuoPublishedPort *>::iterator i = driverBridgeInputs.begin(); i != driverBridgeInputs.end(); ++i)
135 string driverBridgeInputName = driverBridgeInput->
getClass()->
getName();
139 if (compositionPublishedInput)
142 if (compositionPublishedInputType == driverBridgeInputType)
144 vector<VuoCable *> publishedInputOutgoingCables = compositionPublishedInput->
getConnectedCables();
145 set<pair<VuoPort *, VuoNode *> > compositionConnectedPorts;
146 map<pair<VuoPort *, VuoNode *>,
bool> eventOnlyConnection;
150 for (vector<VuoCable *>::iterator i = publishedInputOutgoingCables.begin(); i != publishedInputOutgoingCables.end(); ++i)
155 compositionConnectedPorts.insert(make_pair(toPort, toNode));
167 vector<VuoCable *> driverBridgeInputIncomingCables = driverBridgeInput->
getConnectedCables();
168 for (vector<VuoCable *>::iterator i = driverBridgeInputIncomingCables.begin(); i != driverBridgeInputIncomingCables.end(); ++i)
177 for (set<pair<VuoPort *, VuoNode *> >::iterator i = compositionConnectedPorts.begin(); i != compositionConnectedPorts.end(); ++i)
197 for (vector<VuoPublishedPort *>::iterator i = driverBridgeOutputs.begin(); i != driverBridgeOutputs.end(); ++i)
200 string driverBridgeOutputName = driverBridgeOutput->
getClass()->
getName();
204 if (compositionPublishedOutput)
207 if (compositionPublishedOutputType == driverBridgeOutputType)
209 vector<VuoCable *> publishedOutputIncomingCables = compositionPublishedOutput->
getConnectedCables();
210 set<pair<VuoPort *, VuoNode *> > compositionConnectedPorts;
211 map<pair<VuoPort *, VuoNode *>,
bool> eventOnlyConnection;
215 for (vector<VuoCable *>::iterator i = publishedOutputIncomingCables.begin(); i != publishedOutputIncomingCables.end(); ++i)
220 compositionConnectedPorts.insert(make_pair(fromPort, fromNode));
232 vector<VuoCable *> driverBridgeOutputOutgoingCables = driverBridgeOutput->
getConnectedCables();
233 for (vector<VuoCable *>::iterator i = driverBridgeOutputOutgoingCables.begin(); i != driverBridgeOutputOutgoingCables.end(); ++i)
242 for (set<pair<VuoPort *, VuoNode *> >::iterator i = compositionConnectedPorts.begin(); i != compositionConnectedPorts.end(); ++i)
264 auto driverBridgeInput = std::find_if(driverBridgeInputs.begin(), driverBridgeInputs.end(),
266 if (driverBridgeInput != driverBridgeInputs.end())
268 vector<VuoCable *> driverBridgeInputIncomingCables = (*driverBridgeInput)->getConnectedCables();
271 for (
VuoPublishedPort *compositionPublishedInput : compositionPublishedInputs)
273 string name = compositionPublishedInput->getClass()->getName();
274 auto matchingDriverBridgeInput = std::find_if(driverBridgeInputs.begin(), driverBridgeInputs.end(),
275 [&name] (
VuoPublishedPort *p) { return p->getClass()->getName() == name; });
276 if (matchingDriverBridgeInput != driverBridgeInputs.end())
283 vector<VuoCable *> publishedInputOutgoingCables = compositionPublishedInput->getConnectedCables();
289 for (
VuoCable *driverCable : driverBridgeInputIncomingCables)
291 for (
VuoCable *compositionCable : publishedInputOutgoingCables)
294 VuoCompilerNode *fromCompilerNode = driverCable->getFromNode()->getCompiler();
296 VuoCompilerNode *toCompilerNode = compositionCable->getToNode()->getCompiler();
307 string allowNodeClassName = (canPublishedInputsBeEdited ?
"vuo.event.allowChanges2" :
"vuo.event.allowFirstValue");
324 for (
VuoCable *driverCable : driverBridgeInputIncomingCables)
327 VuoCompilerNode *fromCompilerNode = driverCable->getFromNode()->getCompiler();
334 for (
VuoCable *compositionCable : publishedInputOutgoingCables)
337 VuoCompilerNode *toCompilerNode = compositionCable->getToNode()->getCompiler();