public bool CreateModel() { var nodeSet = new List <int>(); mModel = CirSim.Sim.GetCircuitAsComposite(); if (mModel == null) { return(false); } if (mModel.ExtList.Count == 0) { MessageBox.Show("Device has no external inputs/outputs!"); return(false); } mModel.ExtList.Sort((ExtListEntry a, ExtListEntry b) => { return(a.name.ToLower().CompareTo(b.name.ToLower())); }); int i; int postCount = mModel.ExtList.Count; mModel.SizeX = 2; mModel.SizeY = (postCount + 1) / 2; for (i = 0; i != postCount; i++) { bool left = i < mModel.SizeY; int side = (left) ? ChipElm.SIDE_W : ChipElm.SIDE_E; var pin = mModel.ExtList[i]; pin.pos = left ? i : i - mModel.SizeY; pin.side = side; if (nodeSet.Contains(pin.node)) { MessageBox.Show("Can't have two input/output nodes connected!"); return(false); } nodeSet.Add(pin.node); } return(true); }
public void SetModel(CustomCompositeModel m) { mModel = m; }