/// <summary> /// Adds a feature snap agent for the target layer and turn on all options. /// </summary> /// <remarks> /// This method does not check if there already exists a feature snap agent for the /// target layer. It is recommended that you do so since duplicate agents can appear /// on the Snap Settings Form /// </remarks> private void addFeatureSnapAgent_Click(object sender, EventArgs e) { IEngineFeatureSnapAgent featureSnapAgent = new EngineFeatureSnap(); if (editLayers.TargetLayer == null) { System.Windows.Forms.MessageBox.Show("Please start an edit session"); return; } featureSnapAgent.FeatureClass = editLayers.TargetLayer.FeatureClass;; featureSnapAgent.HitType = esriGeometryHitPartType.esriGeometryPartVertex | esriGeometryHitPartType.esriGeometryPartBoundary | esriGeometryHitPartType.esriGeometryPartEndpoint; snapEnvironment.AddSnapAgent(featureSnapAgent); //refresh this window RefreshDisplay(); }
/// <summary> /// Occurs when this tool is clicked /// </summary> public override void OnClick() { // TODO: Add ToolSplitLine.OnClick implementation //Find the Modify Feature task and set it as the current task IEngineEditTask editTask = m_engineEditor.GetTaskByUniqueName("ControlToolsEditing_ModifyFeatureTask"); m_engineEditor.CurrentTask = editTask; IEngineEditLayers editLayers = m_editLayer; snapEnvironment = m_engineEditor as IEngineSnapEnvironment; pt = new PointClass(); //Check the user is editing; otherwise, there will be no snap agent loaded. if (editLayers.TargetLayer == null) { System.Windows.Forms.MessageBox.Show("Please start an edit session"); return; } ////Create a feature snap agent. IEngineFeatureSnapAgent featureSnapAgent = new EngineFeatureSnap(); IFeatureClass layerFeatureClass = editLayers.TargetLayer.FeatureClass; featureSnapAgent.FeatureClass = layerFeatureClass; featureSnapAgent.HitType = esriGeometryHitPartType.esriGeometryPartBoundary; //Activate only the snap agent for the target layer. snapEnvironment.AddSnapAgent(featureSnapAgent); pMPfeedback = new MovePointFeedbackClass(); pMPfeedback.Display = m_hookHelper.ActiveView.ScreenDisplay; pMPfeedback.Start(pt, pt); IToolbarBuddy toolbarbuddy = (IToolbarBuddy)((IToolbarControl)m_hookHelper.Hook).Buddy; oldtool = toolbarbuddy.CurrentTool; }
/// <summary> /// Adds a feature snap agent for the target layer and turn on all options. /// </summary> /// <remarks> /// This method does not check if there already exists a feature snap agent for the /// target layer. It is recommended that you do so since duplicate agents can appear /// on the Snap Settings Form /// </remarks> private void addFeatureSnapAgent_Click(object sender, EventArgs e) { IEngineFeatureSnapAgent featureSnapAgent = new EngineFeatureSnap(); if (editLayers.TargetLayer == null) { System.Windows.Forms.MessageBox.Show("Please start an edit session"); return; } featureSnapAgent.FeatureClass = editLayers.TargetLayer.FeatureClass; ; featureSnapAgent.HitType = esriGeometryHitPartType.esriGeometryPartVertex | esriGeometryHitPartType.esriGeometryPartBoundary | esriGeometryHitPartType.esriGeometryPartEndpoint; snapEnvironment.AddSnapAgent(featureSnapAgent); //refresh this window RefreshDisplay(); }