Grafika\Grafika::createDrawingObject PHP Method

createDrawingObject() public static method

Draws an object. Detects available editor to use.
public static createDrawingObject ( string $drawingObjectName ) : grafika\DrawingObjectInterface
$drawingObjectName string The name of the DrawingObject.
return grafika\DrawingObjectInterface
    public static function createDrawingObject($drawingObjectName)
    {
        $editorName = self::detectAvailableEditor();
        $p = func_get_args();
        if ('Imagick' === $editorName) {
            switch ($drawingObjectName) {
                case 'CubicBezier':
                    return new ImagickCubicBezier($p[1], $p[2], $p[3], $p[4], array_key_exists(5, $p) ? $p[5] : '#000000');
                case 'Ellipse':
                    return new ImagickEllipse($p[1], $p[2], array_key_exists(3, $p) ? $p[3] : array(0, 0), array_key_exists(4, $p) ? $p[4] : 1, array_key_exists(5, $p) ? $p[5] : '#000000', array_key_exists(6, $p) ? $p[6] : '#FFFFFF');
                case 'Line':
                    return new ImagickLine($p[1], $p[2], array_key_exists(3, $p) ? $p[3] : 1, array_key_exists(4, $p) ? $p[4] : '#000000');
                case 'Polygon':
                    return new ImagickPolygon($p[1], array_key_exists(2, $p) ? $p[2] : 1, array_key_exists(3, $p) ? $p[3] : '#000000', array_key_exists(4, $p) ? $p[4] : '#FFFFFF');
                case 'Rectangle':
                    return new ImagickRectangle($p[1], $p[2], array_key_exists(3, $p) ? $p[3] : array(0, 0), array_key_exists(4, $p) ? $p[4] : 1, array_key_exists(5, $p) ? $p[5] : '#000000', array_key_exists(6, $p) ? $p[6] : '#FFFFFF');
                case 'QuadraticBezier':
                    return new ImagickQuadraticBezier($p[1], $p[2], $p[3], array_key_exists(4, $p) ? $p[4] : '#000000');
            }
            throw new \Exception('Invalid drawing object name.');
        } else {
            switch ($drawingObjectName) {
                case 'CubicBezier':
                    return new GdCubicBezier($p[1], $p[2], $p[3], $p[4], array_key_exists(5, $p) ? $p[5] : '#000000');
                case 'Ellipse':
                    return new GdEllipse($p[1], $p[2], array_key_exists(3, $p) ? $p[3] : array(0, 0), array_key_exists(4, $p) ? $p[4] : 1, array_key_exists(5, $p) ? $p[5] : '#000000', array_key_exists(6, $p) ? $p[6] : '#FFFFFF');
                case 'Line':
                    return new GdLine($p[1], $p[2], array_key_exists(3, $p) ? $p[3] : 1, array_key_exists(4, $p) ? $p[4] : '#000000');
                case 'Polygon':
                    return new GdPolygon($p[1], array_key_exists(2, $p) ? $p[2] : 1, array_key_exists(3, $p) ? $p[3] : '#000000', array_key_exists(4, $p) ? $p[4] : '#FFFFFF');
                case 'Rectangle':
                    return new GdRectangle($p[1], $p[2], array_key_exists(3, $p) ? $p[3] : array(0, 0), array_key_exists(4, $p) ? $p[4] : 1, array_key_exists(5, $p) ? $p[5] : '#000000', array_key_exists(6, $p) ? $p[6] : '#FFFFFF');
                case 'QuadraticBezier':
                    return new GdQuadraticBezier($p[1], $p[2], $p[3], array_key_exists(4, $p) ? $p[4] : '#000000');
            }
            throw new \Exception('Invalid drawing object name.');
        }
    }