示例#1
0
        /// <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();
        }
示例#2
0
        /// <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();
 }