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