public void SetEditorPosition(HashMap rowbufferMap) { DF3DApplication app = DF3DApplication.Application; if (app == null || app.Current3DMapControl == null) { return; } if (this.renderEditorChangedEvent != null) { this.renderEditorChangedEvent(rowbufferMap); } //if (!WorkSpaceServices.Instance().PropertyCanEdit) //{ // RenderControlServices.Instance().AxRenderControl.TransformHelper.Type = gviEditorType.gviEditorNone; // return; //} IEnvelope selectEnvelope = SelectCollection.Instance().GetSelectEnvelope(rowbufferMap); if (selectEnvelope == null || !selectEnvelope.Valid()) { app.Current3DMapControl.TransformHelper.Type = gviEditorType.gviEditorNone; return; } app.Current3DMapControl.TransformHelper.CrsWKT = CommonUtils.Instance().CurEditDatasetWkt; double x = (selectEnvelope.MinX + selectEnvelope.MaxX) / 2.0; double y = (selectEnvelope.MinY + selectEnvelope.MaxY) / 2.0; double z = (selectEnvelope.MinZ + selectEnvelope.MaxZ) / 2.0; IVector3 vector = new Vector3Class(); vector.Set(x, y, z); switch (this.renderEditorType) { case RenderEditorType.MoveType: { app.Current3DMapControl.TransformHelper.Type = gviEditorType.gviEditorNone; return; } case RenderEditorType.RotateAllType: case RenderEditorType.RotateCenterType: { app.Current3DMapControl.TransformHelper.Type = gviEditorType.gviEditorRotate; app.Current3DMapControl.TransformHelper.SetPosition(vector); return; } case RenderEditorType.ScaleAllType: case RenderEditorType.ScaleCenterType: { app.Current3DMapControl.TransformHelper.Type = gviEditorType.gviEditorScale; app.Current3DMapControl.TransformHelper.SetPosition(vector); return; } case RenderEditorType.GeometryMove: case RenderEditorType.GeometryRoate: case RenderEditorType.GeometryScale: { app.Current3DMapControl.TransformHelper.Type = gviEditorType.gviEditorNone; return; } default: { app.Current3DMapControl.TransformHelper.Type = gviEditorType.gviEditorNone; return; } } }