static void CreateLinkAnchor(PWGraph graph, PWGraphCommand command, string inputCommand) { PWNode fromNode, toNode; GetNodes(graph, command, out fromNode, out toNode, inputCommand); var fromAnchorFields = fromNode.outputAnchorFields; var toAnchorFields = toNode.inputAnchorFields; if (command.fromAnchorIndex < 0 || command.fromAnchorIndex >= fromAnchorFields.Count) { throw new Exception("Anchor " + command.fromAnchorIndex + " out of range in node: " + fromNode); } if (command.toAnchorIndex < 0 || command.toAnchorIndex >= toAnchorFields.Count) { throw new Exception("Anchor " + command.fromAnchorIndex + " out of range in node: " + toNode); } var fromAnchorField = fromAnchorFields[command.fromAnchorIndex]; var toAnchorField = toAnchorFields[command.toAnchorIndex]; PWAnchor fromAnchor, toAnchor; FindAnchors(fromAnchorField, toAnchorField, out fromAnchor, out toAnchor); graph.SafeCreateLink(fromAnchor, toAnchor); }
static void CreateLinkAnchorName(PWGraph graph, PWGraphCommand command, string inputCommand) { PWNode fromNode, toNode; GetNodes(graph, command, out fromNode, out toNode, inputCommand); var fromAnchorField = fromNode.outputAnchorFields.Find(af => af.fieldName == command.fromAnchorFieldName); var toAnchorField = toNode.inputAnchorFields.Find(af => af.fieldName == command.toAnchorFieldName); if (fromAnchorField == null) { throw new Exception("Anchor " + command.fromAnchorFieldName + " not found in node: " + fromNode); } if (toAnchorField == null) { throw new Exception("Anchor " + command.toAnchorFieldName + " not found in node: " + toNode); } PWAnchor fromAnchor, toAnchor; FindAnchors(fromAnchorField, toAnchorField, out fromAnchor, out toAnchor); graph.SafeCreateLink(fromAnchor, toAnchor); }