private void 生成地形挖洞ToolStripMenuItem_Click(object sender, System.EventArgs e) { myListNode selectNode = this.listView1.SelectedItems[0] as myListNode; if (selectNode != null) { IRenderPolygon rgeo = selectNode.obj as IRenderPolygon; IPolygon polygon = rgeo.GetFdeGeometry() as IPolygon; // 生成带洞polygon,可注释掉 IEnvelope env = rgeo.Envelope; IRing ring = (new GeometryFactory()).CreateGeometry(gviGeometryType.gviGeometryRing, gviVertexAttribute.gviVertexAttributeZ) as IRing; IPoint center = (new GeometryFactory()).CreatePoint(gviVertexAttribute.gviVertexAttributeZ); center.Position = env.Center; center.SpatialCRS = crs as ISpatialCRS; ring.AppendPoint(center); center.Y = env.Center.Y - 50; ring.AppendPoint(center); center.X = env.Center.X + 50; ring.AppendPoint(center); center.Y = env.Center.Y; ring.AppendPoint(center); polygon.AddInteriorRing(ring); // To here ISurfaceSymbol sfbottom = new SurfaceSymbol(); sfbottom.Color = System.Drawing.Color.Red; IRenderPolygon rgeoNew = this.axRenderControl1.ObjectManager.CreateRenderPolygon(polygon, sfbottom, rootId); TerrainHoleSettingForm form = new TerrainHoleSettingForm(); if (form.ShowDialog() == DialogResult.OK) { order = form.Order; ITerrainHole hole = this.axRenderControl1.ObjectManager.CreateTerrainHole(polygon, rootId); if (hole != null) { hole.DrawOrder = order; // 添加节点到界面控件上 myListNode item = new myListNode(string.Format("TerrainHole_{0}", hole.Guid), TreeNodeType.NT_TerrainHole, hole); item.Checked = true; listView1.Items.Add(item); // 添加节点到界面控件上 item = new myListNode(string.Format("RenderPolygon_{0}", hole.Guid), TreeNodeType.NT_RenderGeomtry, rgeoNew); item.Checked = true; listView1.Items.Add(item); } } } }
private void toolStripButtonCreateTerrainHole_Click(object sender, System.EventArgs e) { TerrainHoleSettingForm form = new TerrainHoleSettingForm(); if (form.ShowDialog() == DialogResult.OK) { order = form.Order; currentGeometry = geoFactory.CreateGeometry(gviGeometryType.gviGeometryPolygon, gviVertexAttribute.gviVertexAttributeZ) as IPolygon; currentGeometry.SpatialCRS = crs as ISpatialCRS; ISurfaceSymbol sfbottom = new SurfaceSymbol(); sfbottom.Color = System.Drawing.Color.Red; currentRenderGeometry = this.axRenderControl1.ObjectManager.CreateRenderPolygon(currentGeometry as IPolygon, sfbottom, rootId); (currentRenderGeometry as IRenderPolygon).HeightStyle = gviHeightStyle.gviHeightOnTerrain; this.axRenderControl1.InteractMode = gviInteractMode.gviInteractEdit; this.axRenderControl1.ObjectEditor.StartEditRenderGeometry(currentRenderGeometry, gviGeoEditType.gviGeoEditCreator); } }
private void 属性ToolStripMenuItem_Click(object sender, System.EventArgs e) { myListNode selectNode = this.listView1.SelectedItems[0] as myListNode; if (selectNode != null) { ITerrainHole hole = selectNode.obj as ITerrainHole; if (hole == null) { return; } int index = 0; TerrainHoleSettingForm form = new TerrainHoleSettingForm(hole.DrawOrder, index); if (form.ShowDialog() == DialogResult.OK) { order = form.Order; hole.DrawOrder = order; } } }