<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: meta.proto

namespace Messages;

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

/**
 * Generated from protobuf message <code>Messages.CameraControl</code>
 */
class CameraControl extends \Google\Protobuf\Internal\Message
{
    /**
     *global position of interest that is being tracked, xyz of length 3
     *
     * Generated from protobuf field <code>repeated float subject = 1;</code>
     */
    private $subject;
    /**
     *global offset that camera might be centered on, dydxdz of length 3
     *
     * Generated from protobuf field <code>repeated float offset = 2;</code>
     */
    private $offset;
    /**
     *viewer/camera angle, of length 3 (6 for future stereoscopic)
     *
     * Generated from protobuf field <code>repeated float angle = 3;</code>
     */
    private $angle;
    /**
     * Generated from protobuf field <code>float scene_time = 4;</code>
     */
    protected $scene_time = 0.0;
    /**
     * Generated from protobuf field <code>float magnification = 5;</code>
     */
    protected $magnification = 0.0;
    /**
     * Generated from protobuf field <code>float time_constant = 6;</code>
     */
    protected $time_constant = 0.0;
    /**
     * Generated from protobuf field <code>float pan_sensitivity = 7;</code>
     */
    protected $pan_sensitivity = 0.0;
    /**
     * Generated from protobuf field <code>float rotation_sensitivity = 8;</code>
     */
    protected $rotation_sensitivity = 0.0;
    /**
     * Generated from protobuf field <code>float zoom_sensitivity = 9;</code>
     */
    protected $zoom_sensitivity = 0.0;
    /**
     * Generated from protobuf field <code>float znear = 10;</code>
     */
    protected $znear = 0.0;
    /**
     * Generated from protobuf field <code>float zfar = 11;</code>
     */
    protected $zfar = 0.0;
    /**
     * angle of view of focal lens (perspective mode)
     *
     * Generated from protobuf field <code>float aov = 12;</code>
     */
    protected $aov = 0.0;
    /**
     * Generated from protobuf field <code>repeated uint32 resolution = 13;</code>
     */
    private $resolution;
    /**
     *reserved
     *
     * Generated from protobuf field <code>bool perspective = 15;</code>
     */
    protected $perspective = false;
    /**
     * Generated from protobuf field <code>bool smooth = 16;</code>
     */
    protected $smooth = false;
    /**
     * Generated from protobuf field <code>bool orbit = 17;</code>
     */
    protected $orbit = false;
    /**
     * Generated from protobuf field <code>bool follow = 18;</code>
     */
    protected $follow = false;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type float[]|\Google\Protobuf\Internal\RepeatedField $subject
     *          global position of interest that is being tracked, xyz of length 3
     *     @type float[]|\Google\Protobuf\Internal\RepeatedField $offset
     *          global offset that camera might be centered on, dydxdz of length 3
     *     @type float[]|\Google\Protobuf\Internal\RepeatedField $angle
     *          viewer/camera angle, of length 3 (6 for future stereoscopic)
     *     @type float $scene_time
     *     @type float $magnification
     *     @type float $time_constant
     *     @type float $pan_sensitivity
     *     @type float $rotation_sensitivity
     *     @type float $zoom_sensitivity
     *     @type float $znear
     *     @type float $zfar
     *     @type float $aov
     *           angle of view of focal lens (perspective mode)
     *     @type int[]|\Google\Protobuf\Internal\RepeatedField $resolution
     *     @type bool $perspective
     *          reserved
     *     @type bool $smooth
     *     @type bool $orbit
     *     @type bool $follow
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Meta::initOnce();
        parent::__construct($data);
    }

    /**
     *global position of interest that is being tracked, xyz of length 3
     *
     * Generated from protobuf field <code>repeated float subject = 1;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSubject()
    {
        return $this->subject;
    }

    /**
     *global position of interest that is being tracked, xyz of length 3
     *
     * Generated from protobuf field <code>repeated float subject = 1;</code>
     * @param float[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSubject($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::FLOAT);
        $this->subject = $arr;

        return $this;
    }

    /**
     *global offset that camera might be centered on, dydxdz of length 3
     *
     * Generated from protobuf field <code>repeated float offset = 2;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getOffset()
    {
        return $this->offset;
    }

    /**
     *global offset that camera might be centered on, dydxdz of length 3
     *
     * Generated from protobuf field <code>repeated float offset = 2;</code>
     * @param float[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setOffset($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::FLOAT);
        $this->offset = $arr;

        return $this;
    }

    /**
     *viewer/camera angle, of length 3 (6 for future stereoscopic)
     *
     * Generated from protobuf field <code>repeated float angle = 3;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getAngle()
    {
        return $this->angle;
    }

    /**
     *viewer/camera angle, of length 3 (6 for future stereoscopic)
     *
     * Generated from protobuf field <code>repeated float angle = 3;</code>
     * @param float[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setAngle($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::FLOAT);
        $this->angle = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>float scene_time = 4;</code>
     * @return float
     */
    public function getSceneTime()
    {
        return $this->scene_time;
    }

    /**
     * Generated from protobuf field <code>float scene_time = 4;</code>
     * @param float $var
     * @return $this
     */
    public function setSceneTime($var)
    {
        GPBUtil::checkFloat($var);
        $this->scene_time = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>float magnification = 5;</code>
     * @return float
     */
    public function getMagnification()
    {
        return $this->magnification;
    }

    /**
     * Generated from protobuf field <code>float magnification = 5;</code>
     * @param float $var
     * @return $this
     */
    public function setMagnification($var)
    {
        GPBUtil::checkFloat($var);
        $this->magnification = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>float time_constant = 6;</code>
     * @return float
     */
    public function getTimeConstant()
    {
        return $this->time_constant;
    }

    /**
     * Generated from protobuf field <code>float time_constant = 6;</code>
     * @param float $var
     * @return $this
     */
    public function setTimeConstant($var)
    {
        GPBUtil::checkFloat($var);
        $this->time_constant = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>float pan_sensitivity = 7;</code>
     * @return float
     */
    public function getPanSensitivity()
    {
        return $this->pan_sensitivity;
    }

    /**
     * Generated from protobuf field <code>float pan_sensitivity = 7;</code>
     * @param float $var
     * @return $this
     */
    public function setPanSensitivity($var)
    {
        GPBUtil::checkFloat($var);
        $this->pan_sensitivity = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>float rotation_sensitivity = 8;</code>
     * @return float
     */
    public function getRotationSensitivity()
    {
        return $this->rotation_sensitivity;
    }

    /**
     * Generated from protobuf field <code>float rotation_sensitivity = 8;</code>
     * @param float $var
     * @return $this
     */
    public function setRotationSensitivity($var)
    {
        GPBUtil::checkFloat($var);
        $this->rotation_sensitivity = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>float zoom_sensitivity = 9;</code>
     * @return float
     */
    public function getZoomSensitivity()
    {
        return $this->zoom_sensitivity;
    }

    /**
     * Generated from protobuf field <code>float zoom_sensitivity = 9;</code>
     * @param float $var
     * @return $this
     */
    public function setZoomSensitivity($var)
    {
        GPBUtil::checkFloat($var);
        $this->zoom_sensitivity = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>float znear = 10;</code>
     * @return float
     */
    public function getZnear()
    {
        return $this->znear;
    }

    /**
     * Generated from protobuf field <code>float znear = 10;</code>
     * @param float $var
     * @return $this
     */
    public function setZnear($var)
    {
        GPBUtil::checkFloat($var);
        $this->znear = $var;

        return $this;
    }

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

    /**
     * Generated from protobuf field <code>float zfar = 11;</code>
     * @param float $var
     * @return $this
     */
    public function setZfar($var)
    {
        GPBUtil::checkFloat($var);
        $this->zfar = $var;

        return $this;
    }

    /**
     * angle of view of focal lens (perspective mode)
     *
     * Generated from protobuf field <code>float aov = 12;</code>
     * @return float
     */
    public function getAov()
    {
        return $this->aov;
    }

    /**
     * angle of view of focal lens (perspective mode)
     *
     * Generated from protobuf field <code>float aov = 12;</code>
     * @param float $var
     * @return $this
     */
    public function setAov($var)
    {
        GPBUtil::checkFloat($var);
        $this->aov = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated uint32 resolution = 13;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getResolution()
    {
        return $this->resolution;
    }

    /**
     * Generated from protobuf field <code>repeated uint32 resolution = 13;</code>
     * @param int[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setResolution($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::UINT32);
        $this->resolution = $arr;

        return $this;
    }

    /**
     *reserved
     *
     * Generated from protobuf field <code>bool perspective = 15;</code>
     * @return bool
     */
    public function getPerspective()
    {
        return $this->perspective;
    }

    /**
     *reserved
     *
     * Generated from protobuf field <code>bool perspective = 15;</code>
     * @param bool $var
     * @return $this
     */
    public function setPerspective($var)
    {
        GPBUtil::checkBool($var);
        $this->perspective = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool smooth = 16;</code>
     * @return bool
     */
    public function getSmooth()
    {
        return $this->smooth;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool orbit = 17;</code>
     * @return bool
     */
    public function getOrbit()
    {
        return $this->orbit;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool follow = 18;</code>
     * @return bool
     */
    public function getFollow()
    {
        return $this->follow;
    }

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

        return $this;
    }

}

