Exemple #1
0
        public override MeshSelection Unselect(Material material)
        {
            MeshSelection selection = IMeshEditorExt.Select(material);

            selection.Invert();

            m_faceSelection.BeginChange();
            foreach (KeyValuePair <ProBuilderMesh, IList <int> > kvp in selection.UnselectedFaces.ToArray())
            {
                IList <int> faces = kvp.Value;
                for (int i = faces.Count - 1; i >= 0; i--)
                {
                    int face = faces[i];
                    if (!m_faceSelection.IsSelected(face))
                    {
                        faces.Remove(face);
                    }
                    else
                    {
                        m_faceSelection.Remove(face);
                    }
                }

                if (faces.Count == 0)
                {
                    selection.UnselectedFaces.Remove(kvp.Key);
                }
            }
            m_faceSelection.EndChange();
            if (selection.UnselectedFaces.Count == 0)
            {
                return(null);
            }
            return(selection);
        }