public CtrlLineStylePage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }
public CtrlParticleParamPage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); mGlobeControl = globeControl; mGeometry = geometry; }
private void MoveEachFeature(GSOFeatureFolder folder, double daltX, double daltY) { GSOFeatures features = folder.Features; for (int i = 0; i < features.Length; i++) { GSOFeature feature = features[i]; if (feature is GSOFeatureFolder) { MoveEachFeature(feature as GSOFeatureFolder, daltX, daltY); } else { GSOGeometry g = feature.Geometry; if (g != null) { g.MoveXY(daltX, daltY); } //GSOGeoModel model = feature.Geometry as GSOGeoModel; //if (model!=null) //{ // GSOPoint3d pt = model.Position; // pt.X += daltX; // pt.Y += daltY; // model.Position = pt; //} } } }
public CtrlParticleParamPage(GSOGeometry geometry,GSOGlobeControl globeControl) { InitializeComponent(); mGlobeControl = globeControl; mGeometry = geometry; }
public CtrlPolygonStylePage(GSOFeature feature, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = feature.Geometry; mfeature = feature; }
/// <summary> /// 递归升高/降低给定高度值 /// </summary> /// <param name="folder">要素集</param> /// <param name="height">高度/米</param> private void MoveEachFeature(GSOFeatureFolder folder, double height) { GSOFeatures features = folder.Features; for (int i = 0; i < features.Length; i++) { GSOFeature feature = features[i]; if (feature is GSOFeatureFolder) { MoveEachFeature(feature as GSOFeatureFolder, height); } else { GSOGeometry geometry = feature.Geometry; if (geometry != null) { //为了显示升降效果,需要将ClampToGround模式修改为RelativeToGround模式 if (geometry.AltitudeMode == EnumAltitudeMode.ClampToGround) { geometry.AltitudeMode = EnumAltitudeMode.RelativeToGround; } //将z轴移动height米 geometry.MoveZ(height); } } } }
public CtrlPolylineSpaceInfo(GSOGeometry geometry,GSOFeature feature,GSOLayer layer,GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; mlayer = layer; mfeature = feature; }
private void AddNewGeoToLayer(GSOGeometry geoEntity, string strName) { GSOFeature newFeature = new GSOFeature(); newFeature.Geometry = geoEntity; newFeature.Name = strName; _glbControl.Globe.MemoryLayer.AddFeature(newFeature); flyToFeature(newFeature); }
public CtrlPolylineSpaceInfo(GSOGeometry geometry, GSOFeature feature, GSOLayer layer, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; mlayer = layer; mfeature = feature; }
public CtrlLineStylePage(GSOGeometry geometry,GSOFeature feature,GSOLayer layer, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; mlayer = layer; mfeature = feature; if (m_Geometry != null && m_Geometry.Style != null) { m_Style = (GSOLineStyle3D)m_Geometry.Style; m_OldStyle = (GSOLineStyle3D)m_Geometry.Style.Clone(); } }
public CtrlLineStylePage(GSOGeometry geometry, GSOFeature feature, GSOLayer layer, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; mlayer = layer; mfeature = feature; if (m_Geometry != null && m_Geometry.Style != null) { m_Style = (GSOLineStyle3D)m_Geometry.Style; m_OldStyle = (GSOLineStyle3D)m_Geometry.Style.Clone(); } }
private void btn_OK_Click(object sender, System.EventArgs e) { if (string.IsNullOrEmpty(this.textBox1.Text)) { errorProvider1.SetError(this.textBox1, "请输入升降高度"); return; } if (!double.TryParse(this.textBox1.Text, out double height)) { errorProvider1.SetError(this.textBox1, "输入高度不合法,请重新输入数字。"); return; } GSOFeatureLayer flayer = _layer as GSOFeatureLayer; //获得图层中的所有要素 GSOFeatures features = flayer.GetAllFeatures(); for (int i = 0; i < features.Length; i++) { //遍历所有要素 GSOFeature feature = features[i]; if (feature is GSOFeatureFolder) { MoveEachFeature(feature as GSOFeatureFolder, height); } else { GSOGeometry geometry = feature.Geometry; if (geometry != null) { //为了显示升降效果, //需要将ClampToGround模式修改为RelativeToGround模式 if (geometry.AltitudeMode == EnumAltitudeMode.ClampToGround) { geometry.AltitudeMode = EnumAltitudeMode.RelativeToGround; } //将z轴移动height米 geometry.MoveZ(height); } } } _glbControl.Refresh(); }
public CtrlMarkerTextPage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }
public CtrlPoint3DSpaceInfo(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }
private void btnMove_Click(object sender, EventArgs e) { GSOLayer layer = ctl.Globe.Layers[cmbLayers.SelectedIndex]; if (layer != null) { if (layer.Type != EnumLayerType.FeatureLayer) { MessageBox.Show("当前选中的图层不是模型图层!", "提示"); return; } if (txtOldLat.Text == "") { MessageBox.Show("请选择起点"); } else if (txtNewLat.Text == "") { MessageBox.Show("请选择目标点"); } else { double daltX = Convert.ToDouble(txtNewLon.Text) - Convert.ToDouble(txtOldLon.Text); double daltY = Convert.ToDouble(txtNewLat.Text) - Convert.ToDouble(txtOldLat.Text); GSOFeatureLayer flayer = layer as GSOFeatureLayer; GSOFeatures features = flayer.GetAllFeatures(); for (int i = 0; i < features.Length; i++) { GSOFeature feature = features[i]; if (feature is GSOFeatureFolder) { MoveEachFeature(feature as GSOFeatureFolder, daltX, daltY); } else { GSOGeometry g = feature.Geometry; if (g != null) { g.MoveXY(daltX, daltY); } // switch (feature.Geometry.Type) // { // case EnumGeometryType.GeoPolyline3D: // GSOGeoPolyline3D line = feature.Geometry as GSOGeoPolyline3D; // for (int m = 0; m < line.PartCount; m++) // { // for (int j = 0; j < line[m].Count; j++) // { // GSOPoint3d line0 = line[m][j]; // line0.X += daltX; // line0.Y += daltY; // line[m][j] = line0; // } // } // break; // case EnumGeometryType.GeoPolygon3D: // GSOGeoPolygon3D polygon = feature.Geometry as GSOGeoPolygon3D; // if (polygon != null) // { // polygon.MoveXY(daltX, daltY); // } // break; // case EnumGeometryType.GeoModel: // GSOGeoModel model = feature.Geometry as GSOGeoModel; // if (model != null) // { // GSOPoint3d pt = model.Position; // pt.X += daltX; // pt.Y += daltY; // model.Position = pt; // } // break; // case EnumGeometryType.GeoFrameAnimation: // GSOGeoFrameAnimation frameAnimation = feature.Geometry as GSOGeoFrameAnimation; // if (frameAnimation != null) // { // GSOPoint3d pt = frameAnimation.Position; // pt.X += daltX; // pt.Y += daltY; // frameAnimation.Position = pt; // } // break; // default: // GSOGeometry g = feature.Geometry; // if (g != null) // { // g.MoveXY(daltX, daltY); // } // break; // } } } if (startFeat != null) { startFeat.Delete(); } if (endFeat != null) { endFeat.Delete(); } ctl.Refresh(); //this.Close(); } } else { MessageBox.Show("请选择图层"); } }
public CtrlSphereEntityParamPage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }
public CtrlFountainParamPage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }
public CtrlEllipCylinderEntityParamPage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }
public FrmWaterParamPage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }
public CtrlRangeEllipFrustumEntityParamPage(GSOGeometry geometry, GSOGlobeControl globeControl) { InitializeComponent(); m_GlobeControl = globeControl; m_Geometry = geometry; }