Example #1
0
        private bool TryGetInfos(IPackImage[] images, out PackedInfo[] infos)
        {
            GenerateNode();

            infos = new PackedInfo[images.Length];

            for (int i = 0; i < images.Length; i++)
            {
                PackedInfo info;
                if (TryPack(images[i], out info))
                {
                    infos[i] = info;
                }
                else
                {
                    if (!TryGrowthSize())
                    {
                        return(false);
                    }

                    TryGetInfos(images, out infos);
                }
            }

            return(true);
        }
Example #2
0
        private bool TryPack(IPackImage image, out PackedInfo info)
        {
            Node node = _rootNode.Insert(image);

            if (node == null)
            {
                info = null;
                return(false);
            }

            int imageID = _count++;

            node.SetImageID(imageID);

            info = new PackedInfo(imageID, node.Rectangle);
            return(true);
        }
Example #3
0
        Vector4 IPacker.GetScaleAndOffset(PackedInfo entity)
        {
            Node target = _rootNode.Find(entity.ImageID);

            return(GetScaleAndOffset(target.Rectangle));
        }
Example #4
0
 public Vector4 GetScaleAndOffset(PackedInfo info)
 {
     return(_packer.GetScaleAndOffset(info));
 }