void EditGeometry() { _geoEditor.FinishEdit(); //用于当拾取到基准面时,或者没有正常右键结束连续调用Start时 if (_buffer != null && _featureLayer != null) { if (this.toolStripComboBoxEdit.SelectedIndex == 1) { resultCode = _geoEditor.StartEditFeatureGeometry(_buffer, _featureLayer, gviGeoEditType.gviGeoEdit3DMove); } else if (this.toolStripComboBoxEdit.SelectedIndex == 2) { resultCode = _geoEditor.StartEditFeatureGeometry(_buffer, _featureLayer, gviGeoEditType.gviGeoEdit3DRotate); } else if (this.toolStripComboBoxEdit.SelectedIndex == 3) { resultCode = _geoEditor.StartEditFeatureGeometry(_buffer, _featureLayer, gviGeoEditType.gviGeoEdit3DScale); } else if (this.toolStripComboBoxEdit.SelectedIndex == 4) { resultCode = _geoEditor.StartEditFeatureGeometry(_buffer, _featureLayer, gviGeoEditType.gviGeoEditVertex); } else if (this.toolStripComboBoxEdit.SelectedIndex == 5) { resultCode = _geoEditor.StartEditFeatureGeometry(_buffer, _featureLayer, gviGeoEditType.gviGeoEditZRotate); } else if (this.toolStripComboBoxEdit.SelectedIndex == 6) { resultCode = _geoEditor.StartEditFeatureGeometry(_buffer, _featureLayer, gviGeoEditType.gviGeoEditZScale); } if (!resultCode) { MessageBox.Show(this.axRenderControl1.GetLastError().ToString()); } } }
private void btnCreateModelPoint_Click(object sender, EventArgs e) { _geoEditor.FinishEdit(); //用于当拾取到基准面时,或者没有正常右键结束连续调用Start时 if (gfactory == null) { gfactory = new GeometryFactory(); } string tmpOsgPath = (strMediaPath + @"\osg\Buildings\Apartment\Apartment.osg"); fde_modelpoint = gfactory.CreateGeometry(gviGeometryType.gviGeometryModelPoint, gviVertexAttribute.gviVertexAttributeZ) as IModelPoint; fde_modelpoint.SetCoords(0, 0, 0, 0, 0); fde_modelpoint.ModelName = tmpOsgPath; //****获取包围盒 IResourceFactory resfac = new ResourceFactory(); IPropertySet images = new PropertySet(); IModel model = null; IMatrix matrix = null; resfac.CreateModelAndImageFromFile(tmpOsgPath, out images, out model, out matrix); fde_modelpoint.ModelEnvelope = model.Envelope; //************* rmodelpoint = this.axRenderControl1.ObjectManager.CreateRenderModelPoint(fde_modelpoint, null, rootId); resultCode = _geoEditor.StartEditRenderGeometry(rmodelpoint, gviGeoEditType.gviGeoEditCreator); if (!resultCode) { MessageBox.Show(this.axRenderControl1.GetLastError().ToString()); } oldfdeGeometry = fde_modelpoint; }
/// <summary> /// 设置三维场景可选择RenderModelPoint /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMoveMotionObject_Click(object sender, EventArgs e) { if (renderModelPoint != null) { if (_geoEditor == null) { _geoEditor = this.axRenderControl1.ObjectEditor; } _geoEditor.FinishEdit(); axRenderControl1.FeatureManager.UnhighlightAll(); axRenderControl1.InteractMode = gviInteractMode.gviInteractEdit; resultCode = _geoEditor.StartEditRenderGeometry(renderModelPoint, gviGeoEditType.gviGeoEdit3DMove); if (!resultCode) { MessageBox.Show(this.axRenderControl1.GetLastError().ToString()); } } }