<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: rv2d.proto

namespace Rv\Data;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Generated from protobuf message <code>rv.data.RenderLayer</code>
 */
class RenderLayer extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Rect bounds = 9;</code>
     */
    protected $bounds = null;
    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Element.FlipMode flip_mode = 10;</code>
     */
    protected $flip_mode = 0;
    /**
     * Generated from protobuf field <code>double rotation = 11;</code>
     */
    protected $rotation = 0.0;
    /**
     * Generated from protobuf field <code>int32 build_index = 12;</code>
     */
    protected $build_index = 0;
    /**
     * Generated from protobuf field <code>bool build_out = 13;</code>
     */
    protected $build_out = false;
    /**
     * Generated from protobuf field <code>int32 build_out_index = 14;</code>
     */
    protected $build_out_index = 0;
    protected $LayerType;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Rv\Data\Graphics\Rect $bounds
     *     @type int $flip_mode
     *     @type float $rotation
     *     @type int $build_index
     *     @type bool $build_out
     *     @type int $build_out_index
     *     @type \Rv\Data\RenderLayer\Composite $composite
     *     @type \Rv\Data\Media $media
     *     @type \Rv\Data\Graphics\Text\CutOutFill $cut_out
     *     @type \Rv\Data\Graphics\BackgroundEffect $background_effect
     *     @type \Rv\Data\Slide\Element\DataLink\OutputScreen $output_screen
     *     @type \Rv\Data\RenderLayer\Scrolling $scrolling
     *     @type \Rv\Data\Slide\Element\DataLink\SlideImage $slide_image
     *     @type \Rv\Data\Slide\Element\DataLink\Zone $zone
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Rv2D::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Rect bounds = 9;</code>
     * @return \Rv\Data\Graphics\Rect|null
     */
    public function getBounds()
    {
        return $this->bounds;
    }

    public function hasBounds()
    {
        return isset($this->bounds);
    }

    public function clearBounds()
    {
        unset($this->bounds);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Rect bounds = 9;</code>
     * @param \Rv\Data\Graphics\Rect $var
     * @return $this
     */
    public function setBounds($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Graphics\Rect::class);
        $this->bounds = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Element.FlipMode flip_mode = 10;</code>
     * @return int
     */
    public function getFlipMode()
    {
        return $this->flip_mode;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Element.FlipMode flip_mode = 10;</code>
     * @param int $var
     * @return $this
     */
    public function setFlipMode($var)
    {
        GPBUtil::checkEnum($var, \Rv\Data\Graphics\Element\FlipMode::class);
        $this->flip_mode = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double rotation = 11;</code>
     * @return float
     */
    public function getRotation()
    {
        return $this->rotation;
    }

    /**
     * Generated from protobuf field <code>double rotation = 11;</code>
     * @param float $var
     * @return $this
     */
    public function setRotation($var)
    {
        GPBUtil::checkDouble($var);
        $this->rotation = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int32 build_index = 12;</code>
     * @return int
     */
    public function getBuildIndex()
    {
        return $this->build_index;
    }

    /**
     * Generated from protobuf field <code>int32 build_index = 12;</code>
     * @param int $var
     * @return $this
     */
    public function setBuildIndex($var)
    {
        GPBUtil::checkInt32($var);
        $this->build_index = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool build_out = 13;</code>
     * @return bool
     */
    public function getBuildOut()
    {
        return $this->build_out;
    }

    /**
     * Generated from protobuf field <code>bool build_out = 13;</code>
     * @param bool $var
     * @return $this
     */
    public function setBuildOut($var)
    {
        GPBUtil::checkBool($var);
        $this->build_out = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int32 build_out_index = 14;</code>
     * @return int
     */
    public function getBuildOutIndex()
    {
        return $this->build_out_index;
    }

    /**
     * Generated from protobuf field <code>int32 build_out_index = 14;</code>
     * @param int $var
     * @return $this
     */
    public function setBuildOutIndex($var)
    {
        GPBUtil::checkInt32($var);
        $this->build_out_index = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.RenderLayer.Composite composite = 1;</code>
     * @return \Rv\Data\RenderLayer\Composite|null
     */
    public function getComposite()
    {
        return $this->readOneof(1);
    }

    public function hasComposite()
    {
        return $this->hasOneof(1);
    }

    /**
     * Generated from protobuf field <code>.rv.data.RenderLayer.Composite composite = 1;</code>
     * @param \Rv\Data\RenderLayer\Composite $var
     * @return $this
     */
    public function setComposite($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\RenderLayer\Composite::class);
        $this->writeOneof(1, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Media media = 2;</code>
     * @return \Rv\Data\Media|null
     */
    public function getMedia()
    {
        return $this->readOneof(2);
    }

    public function hasMedia()
    {
        return $this->hasOneof(2);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Media media = 2;</code>
     * @param \Rv\Data\Media $var
     * @return $this
     */
    public function setMedia($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Media::class);
        $this->writeOneof(2, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Text.CutOutFill cut_out = 3;</code>
     * @return \Rv\Data\Graphics\Text\CutOutFill|null
     */
    public function getCutOut()
    {
        return $this->readOneof(3);
    }

    public function hasCutOut()
    {
        return $this->hasOneof(3);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.Text.CutOutFill cut_out = 3;</code>
     * @param \Rv\Data\Graphics\Text\CutOutFill $var
     * @return $this
     */
    public function setCutOut($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Graphics\Text\CutOutFill::class);
        $this->writeOneof(3, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.BackgroundEffect background_effect = 4;</code>
     * @return \Rv\Data\Graphics\BackgroundEffect|null
     */
    public function getBackgroundEffect()
    {
        return $this->readOneof(4);
    }

    public function hasBackgroundEffect()
    {
        return $this->hasOneof(4);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Graphics.BackgroundEffect background_effect = 4;</code>
     * @param \Rv\Data\Graphics\BackgroundEffect $var
     * @return $this
     */
    public function setBackgroundEffect($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Graphics\BackgroundEffect::class);
        $this->writeOneof(4, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Slide.Element.DataLink.OutputScreen output_screen = 5;</code>
     * @return \Rv\Data\Slide\Element\DataLink\OutputScreen|null
     */
    public function getOutputScreen()
    {
        return $this->readOneof(5);
    }

    public function hasOutputScreen()
    {
        return $this->hasOneof(5);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Slide.Element.DataLink.OutputScreen output_screen = 5;</code>
     * @param \Rv\Data\Slide\Element\DataLink\OutputScreen $var
     * @return $this
     */
    public function setOutputScreen($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Slide\Element\DataLink\OutputScreen::class);
        $this->writeOneof(5, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.RenderLayer.Scrolling scrolling = 6;</code>
     * @return \Rv\Data\RenderLayer\Scrolling|null
     */
    public function getScrolling()
    {
        return $this->readOneof(6);
    }

    public function hasScrolling()
    {
        return $this->hasOneof(6);
    }

    /**
     * Generated from protobuf field <code>.rv.data.RenderLayer.Scrolling scrolling = 6;</code>
     * @param \Rv\Data\RenderLayer\Scrolling $var
     * @return $this
     */
    public function setScrolling($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\RenderLayer\Scrolling::class);
        $this->writeOneof(6, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Slide.Element.DataLink.SlideImage slide_image = 7;</code>
     * @return \Rv\Data\Slide\Element\DataLink\SlideImage|null
     */
    public function getSlideImage()
    {
        return $this->readOneof(7);
    }

    public function hasSlideImage()
    {
        return $this->hasOneof(7);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Slide.Element.DataLink.SlideImage slide_image = 7;</code>
     * @param \Rv\Data\Slide\Element\DataLink\SlideImage $var
     * @return $this
     */
    public function setSlideImage($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Slide\Element\DataLink\SlideImage::class);
        $this->writeOneof(7, $var);

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Slide.Element.DataLink.Zone zone = 8;</code>
     * @return \Rv\Data\Slide\Element\DataLink\Zone|null
     */
    public function getZone()
    {
        return $this->readOneof(8);
    }

    public function hasZone()
    {
        return $this->hasOneof(8);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Slide.Element.DataLink.Zone zone = 8;</code>
     * @param \Rv\Data\Slide\Element\DataLink\Zone $var
     * @return $this
     */
    public function setZone($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Slide\Element\DataLink\Zone::class);
        $this->writeOneof(8, $var);

        return $this;
    }

    /**
     * @return string
     */
    public function getLayerType()
    {
        return $this->whichOneof("LayerType");
    }

}

