* @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2 * @author Icinga Development Team */ // {{{ICINGA_LICENSE_HEADER}}} namespace Icinga\Chart\Primitive; use Icinga\Chart\Render\RenderContext; /** * Drawable for svg circles */ class Circle extends Styleable implements Drawable { /** * The circles x position * @var int */ private $x; /** * The circles y position * @var int */ private $y; /** * The circles radius * @var int */ private $radius; /** * Construct the circle * * @param int $x The x position of the circle * @param int $y The y position of the circle * @param int $radius The radius of the circle */ public function __construct($x, $y, $radius) { $this->x = $x; $this->y = $y; $this->radius = $radius; } /** * Create the SVG representation from this Drawable * * @param RenderContext $ctx The context to use for rendering * @return DOMElement The SVG Element */ public function toSvg(RenderContext $ctx) { $coords = $ctx->toAbsolute($this->x, $this->y); $circle = $ctx->getDocument()->createElement('circle'); $circle->setAttribute('cx', $coords[0]); $circle->setAttribute('cy', $coords[1]); $circle->setAttribute('r', 5); $circle->setAttribute('style', $this->getStyle()); return $circle; } }