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); }
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); }
Vector4 IPacker.GetScaleAndOffset(PackedInfo entity) { Node target = _rootNode.Find(entity.ImageID); return(GetScaleAndOffset(target.Rectangle)); }
public Vector4 GetScaleAndOffset(PackedInfo info) { return(_packer.GetScaleAndOffset(info)); }