/// <summary> /// Initialize the sections for a working copy of a subdivision face. /// </summary> /// <param name="face">A transient face to create sections for</param> /// <param name="isPrimaryFace">Is the specified face the primary face?</param> void InitializeWorkingFace(LineSubdivisionFace face, bool isPrimaryFace) { // Create throwaway line sections (without any feature IDs, not associated with any session, // not in spatial index). FeatureFactory ff = new ThrowawayFeatureFactory(m_pop); ff.LineType = m_pop.Parent.EntityType; face.CreateSections(m_pop.Parent, ff, isPrimaryFace); // And calculate initial geometry face.CalculateGeometry(m_pop.Parent, null); }
/// <summary> /// Dialog-specific painting. /// </summary> internal void Draw() { // Draw the features originally created by the op in gray. ISpatialDisplay display = m_UpdCmd.ActiveDisplay; IDrawStyle style = m_UpdCmd.Controller.Style(Color.Gray); style.IsFixed = true; m_pop.Render(display, style, true); // Ensure the current face has up-to-date geometry and draw that using magenta draw style m_CurrentFace.CalculateGeometry(m_pop.Parent, null); style = m_UpdCmd.Controller.Style(Color.Magenta); style.IsFixed = true; foreach (LineFeature line in m_CurrentFace.Sections) { line.Render(display, style); } // Highlight the currently selected section (if any). if (m_SelectedLine != null) { m_SelectedLine.Render(display, new HighlightStyle()); } }