Exemplo n.º 1
0
 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());
         }
     }
 }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        /// <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());
                }
            }
        }