public static List<IGraphicItem> GeneratedGraphicItems(this NodeModel node, EngineController engineController) { var ids = node.GetAllOutportAstIdentifiers(); var results = new List<IGraphicItem>(); foreach (var id in ids) { var mirror = engineController.GetMirror(id); if (mirror == null) continue; var mirrorData = mirror.GetData(); if (mirrorData == null) continue; GetGraphicItemsFromMirrorData(mirrorData, results); } return results; }
public ColorRange1D ComputeColorRange(EngineController engine) { List<Color> colors; List<double> parameters; // If there are colors supplied if (HasConnectedInput(0)) { var colorsNode = InPorts[0].Connectors[0].Start.Owner; var colorsIndex = InPorts[0].Connectors[0].Start.Index; var startId = colorsNode.GetAstIdentifierForOutputIndex(colorsIndex).Name; var colorsMirror = engine.GetMirror(startId); colors = GetColorsFromMirrorData(colorsMirror); } else { colors = new List<Color>(); colors.AddRange(DefaultColorRanges.Analysis); } // If there are indices supplied if (HasConnectedInput(1)) { var valuesNode = InPorts[1].Connectors[0].Start.Owner; var valuesIndex = InPorts[1].Connectors[0].Start.Index; var endId = valuesNode.GetAstIdentifierForOutputIndex(valuesIndex).Name; var valuesMirror = engine.GetMirror(endId); parameters = GetValuesFromMirrorData(valuesMirror); } else { parameters = CreateParametersForColors(colors); } return ColorRange1D.ByColorsAndParameters(colors, parameters); }