| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <?phpnamespace PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer;class SpgrContainer{    /**     * Parent Shape Group Container.     *     * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer     */    private $parent;    /**     * Shape Container collection.     *     * @var array     */    private $children = [];    /**     * Set parent Shape Group Container.     *     * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer $parent     */    public function setParent($parent)    {        $this->parent = $parent;    }    /**     * Get the parent Shape Group Container if any.     *     * @return null|\PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer     */    public function getParent()    {        return $this->parent;    }    /**     * Add a child. This will be either spgrContainer or spContainer.     *     * @param mixed $child     */    public function addChild($child)    {        $this->children[] = $child;        $child->setParent($this);    }    /**     * Get collection of Shape Containers.     */    public function getChildren()    {        return $this->children;    }    /**     * Recursively get all spContainers within this spgrContainer.     *     * @return SpgrContainer\SpContainer[]     */    public function getAllSpContainers()    {        $allSpContainers = [];        foreach ($this->children as $child) {            if ($child instanceof self) {                $allSpContainers = array_merge($allSpContainers, $child->getAllSpContainers());            } else {                $allSpContainers[] = $child;            }        }        return $allSpContainers;    }}
 |