// Token: 0x06000037 RID: 55 RVA: 0x0000304C File Offset: 0x0000124C
        private static IEnumerable <NamedSelectionTagg> createNamedSelectionTaggs(LOD src)
        {
            int nPoints = src.VertexCount;
            int nFaces  = src.Faces.Length;

            foreach (NamedSelection namedSelection in src.NamedSelections)
            {
                NamedSelectionTagg namedSelectionTagg = new NamedSelectionTagg();
                namedSelectionTagg.Name     = namedSelection.Name;
                namedSelectionTagg.DataSize = (uint)(nPoints + nFaces);
                namedSelectionTagg.points   = new byte[nPoints];
                namedSelectionTagg.faces    = new byte[nFaces];
                bool          flag   = namedSelection.SelectedVerticesWeights.Length != 0;
                int           num    = 0;
                VertexIndex[] array2 = namedSelection.SelectedVertices;
                for (int j = 0; j < array2.Length; j++)
                {
                    int  num2 = array2[j];
                    byte b    = flag ? (-namedSelection.SelectedVerticesWeights[num++]) : 1;
                    namedSelectionTagg.points[num2] = b;
                }
                array2 = namedSelection.SelectedFaces;
                for (int j = 0; j < array2.Length; j++)
                {
                    int num3 = array2[j];
                    namedSelectionTagg.faces[num3] = 1;
                }
                yield return(namedSelectionTagg);
            }
            NamedSelection[] array = null;
            yield break;
        }
 // Token: 0x06000031 RID: 49 RVA: 0x000028B8 File Offset: 0x00000AB8
 private static void ApplySelectedPointsAndFaces(MLOD_LOD dstLod, Dictionary <string, List <Conversion.PointWeight> > nsPoints, Dictionary <string, List <int> > nsFaces)
 {
     foreach (Tagg tagg in dstLod.taggs)
     {
         if (tagg is NamedSelectionTagg)
         {
             NamedSelectionTagg            namedSelectionTagg = tagg as NamedSelectionTagg;
             List <Conversion.PointWeight> list;
             if (nsPoints != null && nsPoints.TryGetValue(namedSelectionTagg.Name, out list))
             {
                 foreach (Conversion.PointWeight pointWeight in list)
                 {
                     byte b = -pointWeight.weight;
                     if (b != 0)
                     {
                         namedSelectionTagg.points[pointWeight.pointIndex] = b;
                     }
                 }
             }
             List <int> list2;
             if (nsFaces != null && nsFaces.TryGetValue(namedSelectionTagg.Name, out list2))
             {
                 foreach (int num in list2)
                 {
                     namedSelectionTagg.faces[num] = 1;
                 }
             }
         }
     }
 }