private void VisitConnector(CyPhy.Connector connector, MgaFCO parent)
{
if (!visitedPorts.Contains(connector.ID + "_" + parent.ID))
{
visitedPorts.Add(connector.ID + "_" + parent.ID);
bool parentIsComponent = (connector.ParentContainer is CyPhy.Component);
bool isStart = (connector.ID == startNodeID);
if (!isStart && parentIsComponent)
{
FoundConnectedNodes.Add(connector);
}
foreach (CyPhy.ConnectorComposition conn in connector.SrcConnections.ConnectorCompositionCollection)
{
if (topAssembly != null && !IsParent(conn, topAssembly))
{
continue;
}
if (parent.ObjType != GME.MGA.Meta.objtype_enum.OBJTYPE_REFERENCE ||
GetRefportOrParent((MgaConnection)conn.Impl, "src").ID == parent.ID)
{
VisitConnector(conn.SrcEnds.Connector, parent);
}
}
foreach (CyPhy.ConnectorComposition conn in connector.DstConnections.ConnectorCompositionCollection)
{
if (topAssembly != null && !IsParent(conn, topAssembly))
{
continue;
}
if (parent.ObjType != GME.MGA.Meta.objtype_enum.OBJTYPE_REFERENCE ||
GetRefportOrParent((MgaConnection)conn.Impl, "dst").ID == parent.ID)
{
VisitConnector(conn.DstEnds.Connector, parent);
}
}
}
}