Exemplo n.º 1
0
        private PackerWindow.Edge[] FindUniqueEdges(ushort[] indices)
        {
            PackerWindow.Edge[] edgeArray = new PackerWindow.Edge[indices.Length];
            int num = indices.Length / 3;

            for (int index = 0; index < num; ++index)
            {
                edgeArray[index * 3]     = new PackerWindow.Edge(indices[index * 3], indices[index * 3 + 1]);
                edgeArray[index * 3 + 1] = new PackerWindow.Edge(indices[index * 3 + 1], indices[index * 3 + 2]);
                edgeArray[index * 3 + 2] = new PackerWindow.Edge(indices[index * 3 + 2], indices[index * 3]);
            }
            return(((IEnumerable <PackerWindow.Edge>)edgeArray).GroupBy <PackerWindow.Edge, PackerWindow.Edge>((Func <PackerWindow.Edge, PackerWindow.Edge>)(x => x)).Where <IGrouping <PackerWindow.Edge, PackerWindow.Edge> >((Func <IGrouping <PackerWindow.Edge, PackerWindow.Edge>, bool>)(x => x.Count <PackerWindow.Edge>() == 1)).Select <IGrouping <PackerWindow.Edge, PackerWindow.Edge>, PackerWindow.Edge>((Func <IGrouping <PackerWindow.Edge, PackerWindow.Edge>, PackerWindow.Edge>)(x => x.First <PackerWindow.Edge>())).ToArray <PackerWindow.Edge>());
        }
Exemplo n.º 2
0
 public override bool Equals(object obj)
 {
     PackerWindow.Edge edge = (PackerWindow.Edge)obj;
     if ((int)this.v0 == (int)edge.v0 && (int)this.v1 == (int)edge.v1)
     {
         return(true);
     }
     if ((int)this.v0 == (int)edge.v1)
     {
         return((int)this.v1 == (int)edge.v0);
     }
     return(false);
 }
Exemplo n.º 3
0
        private PackerWindow.Edge[] FindUniqueEdges(ushort[] indices)
        {
            PackerWindow.Edge[] array = new PackerWindow.Edge[indices.Length];
            int num = indices.Length / 3;

            for (int i = 0; i < num; i++)
            {
                array[i * 3]     = new PackerWindow.Edge(indices[i * 3], indices[i * 3 + 1]);
                array[i * 3 + 1] = new PackerWindow.Edge(indices[i * 3 + 1], indices[i * 3 + 2]);
                array[i * 3 + 2] = new PackerWindow.Edge(indices[i * 3 + 2], indices[i * 3]);
            }
            return((from x in array
                    group x by x into x
                    where x.Count <PackerWindow.Edge>() == 1
                    select x.First <PackerWindow.Edge>()).ToArray <PackerWindow.Edge>());
        }
Exemplo n.º 4
0
 protected override void DrawGizmos()
 {
     if (this.m_SelectedSprite != null && this.m_Texture != null)
     {
         Vector2[]           spriteUVs = SpriteUtility.GetSpriteUVs(this.m_SelectedSprite, true);
         ushort[]            triangles = this.m_SelectedSprite.triangles;
         PackerWindow.Edge[] array     = this.FindUniqueEdges(triangles);
         SpriteEditorUtility.BeginLines(new Color(0.3921f, 0.5843f, 0.9294f, 0.75f));
         PackerWindow.Edge[] array2 = array;
         for (int i = 0; i < array2.Length; i++)
         {
             PackerWindow.Edge edge = array2[i];
             this.DrawLineUtility(spriteUVs[(int)edge.v0], spriteUVs[(int)edge.v1]);
         }
         SpriteEditorUtility.EndLines();
     }
 }
Exemplo n.º 5
0
 public override bool Equals(object obj)
 {
     PackerWindow.Edge edge = (PackerWindow.Edge)obj;
     return((this.v0 == edge.v0 && this.v1 == edge.v1) || (this.v0 == edge.v1 && this.v1 == edge.v0));
 }
Exemplo n.º 6
0
		private PackerWindow.Edge[] FindUniqueEdges(ushort[] indices)
		{
			PackerWindow.Edge[] array = new PackerWindow.Edge[indices.Length];
			int num = indices.Length / 3;
			for (int i = 0; i < num; i++)
			{
				array[i * 3] = new PackerWindow.Edge(indices[i * 3], indices[i * 3 + 1]);
				array[i * 3 + 1] = new PackerWindow.Edge(indices[i * 3 + 1], indices[i * 3 + 2]);
				array[i * 3 + 2] = new PackerWindow.Edge(indices[i * 3 + 2], indices[i * 3]);
			}
			return (
				from x in array
				group x by x into x
				where x.Count<PackerWindow.Edge>() == 1
				select x.First<PackerWindow.Edge>()).ToArray<PackerWindow.Edge>();
		}
Exemplo n.º 7
0
 private PackerWindow.Edge[] FindUniqueEdges(ushort[] indices)
 {
   PackerWindow.Edge[] edgeArray = new PackerWindow.Edge[indices.Length];
   int num = indices.Length / 3;
   for (int index = 0; index < num; ++index)
   {
     edgeArray[index * 3] = new PackerWindow.Edge(indices[index * 3], indices[index * 3 + 1]);
     edgeArray[index * 3 + 1] = new PackerWindow.Edge(indices[index * 3 + 1], indices[index * 3 + 2]);
     edgeArray[index * 3 + 2] = new PackerWindow.Edge(indices[index * 3 + 2], indices[index * 3]);
   }
   return ((IEnumerable<PackerWindow.Edge>) edgeArray).GroupBy<PackerWindow.Edge, PackerWindow.Edge>((Func<PackerWindow.Edge, PackerWindow.Edge>) (x => x)).Where<IGrouping<PackerWindow.Edge, PackerWindow.Edge>>((Func<IGrouping<PackerWindow.Edge, PackerWindow.Edge>, bool>) (x => x.Count<PackerWindow.Edge>() == 1)).Select<IGrouping<PackerWindow.Edge, PackerWindow.Edge>, PackerWindow.Edge>((Func<IGrouping<PackerWindow.Edge, PackerWindow.Edge>, PackerWindow.Edge>) (x => x.First<PackerWindow.Edge>())).ToArray<PackerWindow.Edge>();
 }