private int GetMask(HyperEquation he) { int mask = 0x0; if (Hset.AddLastAble(he) && Hset.AddFirstAble(he)) { mask |= 0x80; } if (Hset.AddLastAble(he.Flip12()) && Hset.AddFirstAble(he.Flip12())) { mask |= 0x40; } //if(Hset.AddLastAble(he) || Hset.AddLastAble(he.Flip12())) mask |= 0x20; if (Hset.AddLastAble(he)) { mask |= 0x10; } if (Hset.AddLastAble(he.Flip12())) { mask |= 0x8; } //if(Hset.AddFirstAble(he) || Hset.AddFirstAble(he.Flip12())) mask |= 0x4; if (Hset.AddFirstAble(he)) { mask |= 0x2; } if (Hset.AddFirstAble(he.Flip12())) { mask |= 0x1; } return(mask); }
private void buttonAdd_Click(object sender, EventArgs e) { var tn = treeViewList.SelectedNode as TreeNodeHyperF; if (tn == null) { return; } treeViewList.SuspendLayout(); treeViewCycle.SuspendLayout(); var he = tn.G.Data; if (_k == 2) { he = (new HyperEquation(he[1], he[0], he[2]) - he[1].AbcShift).Simplify(); } if (_k == 3) { he = (new HyperEquation(he[2], he[0], he[1]) - he[2].AbcShift).Simplify(); } if (Hset.List != null) { if (Hset.List.GetLast().Data[2].AbcShift == -he[2].AbcShift) { he = new HyperEquation(he[0], he[2], he[1]) { FromEquations = he.FromEquations } } ; } Converter <HyperEquation, TreeNodeHyperF> converter = h => new TreeNodeHyperF( h[1].AbcShift + @"," + h[2].AbcShift + @" " + h.ToString() .Replace(@"*", @"").Replace(@"F", @"*F") + @" = 0") { G = new MultiCycle <HyperEquation>(h, tn.G.Link) }; if (Hset.AddLast(he) || Hset.AddLast(he = he.Flip12())) { treeViewCycle.Nodes.Add(converter(he)); } else if (Hset.AddFirst(he) || Hset.AddFirst(he = he.Flip12())) { treeViewCycle.Nodes.Insert(0, converter(he)); } buttonBuild.Enabled = Hset.List != null && Hset.AddLastAble(Hset.List.Data); buttonBuild.Text = @"Побудувати дріб (m = " + (Hset.List == null ? @"0" : Hset.Count.ToString(CultureInfo.InvariantCulture)) + @")"; buttonRemoveFirst.Enabled = buttonRemoveLast.Enabled = buttonFindCycle.Enabled = true; AcceptButton = buttonBuild.Enabled ? buttonBuild : buttonAdd; Colorize(); treeViewList.ResumeLayout(); treeViewCycle.ResumeLayout(); //treeViewList.Select(); treeView_AfterSelect(treeViewList, new TreeViewEventArgs(treeViewList.SelectedNode, TreeViewAction.Unknown)); }