| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 批量一键生成楼层模型 |
| | | /// </summary> |
| | | public void BatchInsertNet(Template temp) |
| | | { |
| | | var nodes = _Nodes.Where(c => c.Elev > 0).Select(node => (NodeViewModel)node).ToList(); |
| | | _undoOldValue = new PointF3D(0, 0, 0); |
| | | _OperaNode = temp.network.Nodes.Find(node => node.ID == temp.Node1) as NodeViewModel; |
| | | //foreach (var item in nodes) |
| | | if (nodes.Any()) |
| | | { |
| | | for (var i = 0; i < nodes.Count(); i++) |
| | | { |
| | | var net = temp.network.DeepCopy(); |
| | | |
| | | float dx, dy, dz; |
| | | var p1 = (PointF3D)_undoOldValue; |
| | | var p2 = nodes[i].Position3D; |
| | | var dd = temp.OffSet; |
| | | dx = p2.X - p1.X; |
| | | dy = p2.Y - p1.Y; |
| | | dz = p2.Z - p1.Z; |
| | | |
| | | net.Nodes.ForEach(n => { ((NodeViewModel)n).Position3D = new PointF3D(n.X + dx, n.Y + dy, n.Elev + dz); }); |
| | | |
| | | var list = _Network.Add(net); |
| | | |
| | | //var j = _Network.AddPipe(nodes[i], _OperaNode); |
| | | //j.Length = 0.0001f; |
| | | //list.Add(j); |
| | | _NewNet.Clear(); |
| | | |
| | | _Network.BuildRelation(); |
| | | |
| | | selectedObjs.ForEach(o => o.Selected = false); |
| | | selectedObjs.Clear(); |
| | | |
| | | //list.ForEach(m => m.Selected = true); |
| | | //selectedObjs.AddRange(list); |
| | | |
| | | MapObjectExtensions.AddCommand(_Network, "Add", null, list); |
| | | } |
| | | |
| | | _OperaNode = null; |
| | | |
| | | //_OperaNode = null; |
| | | //_Network.Nodes.AddRange(net.Nodes); |
| | | //_Network.Links.AddRange(net.Links); |
| | | |
| | | SetMapInvalidate(); |
| | | } |
| | | } |
| | | |
| | | private void 以当前视角另存ToolStripMenuItem_Click(object sender, EventArgs e) |
| | | { |
| | | if (_Template == null) return; |