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

namespace Messages;

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

/**
 * Generated from protobuf message <code>Messages.MeshControl</code>
 */
class MeshControl extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>uint64 target_n = 1;</code>
     */
    protected $target_n = 0;
    /**
     * Generated from protobuf field <code>uint32 max_iterations = 2;</code>
     */
    protected $max_iterations = 0;
    /**
     * Generated from protobuf field <code>double size_ratio = 3;</code>
     */
    protected $size_ratio = 0.0;
    /**
     * Generated from protobuf field <code>double size_decay = 4;</code>
     */
    protected $size_decay = 0.0;
    /**
     * Generated from protobuf field <code>double size_exponent = 5;</code>
     */
    protected $size_exponent = 0.0;
    /**
     * Generated from protobuf field <code>double curv_ratio = 6;</code>
     */
    protected $curv_ratio = 0.0;
    /**
     * Generated from protobuf field <code>double curv_decay = 7;</code>
     */
    protected $curv_decay = 0.0;
    /**
     * Generated from protobuf field <code>double curv_exponent = 8;</code>
     */
    protected $curv_exponent = 0.0;
    /**
     * Generated from protobuf field <code>double node_radius = 9;</code>
     */
    protected $node_radius = 0.0;
    /**
     * Generated from protobuf field <code>.Messages.Extrema bounds = 10;</code>
     */
    protected $bounds = null;
    /**
     * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)       
     *
     * Generated from protobuf field <code>uint32 length_units = 11;</code>
     */
    protected $length_units = 0;
    /**
     * Generated from protobuf field <code>bool interior = 12;</code>
     */
    protected $interior = false;
    /**
     * Generated from protobuf field <code>bool exterior = 13;</code>
     */
    protected $exterior = false;
    /**
     * Generated from protobuf field <code>bool shell = 14;</code>
     */
    protected $shell = false;
    /**
     * Generated from protobuf field <code>bool equalize = 15;</code>
     */
    protected $equalize = false;
    /**
     * Generated from protobuf field <code>bool smooth = 16;</code>
     */
    protected $smooth = false;
    /**
     *reserved
     *
     * Generated from protobuf field <code>bool include_background = 18;</code>
     */
    protected $include_background = false;
    /**
     * Generated from protobuf field <code>bool keep_existing_points = 19;</code>
     */
    protected $keep_existing_points = false;
    /**
     * Generated from protobuf field <code>bool auto_fit_domain = 20;</code>
     */
    protected $auto_fit_domain = false;
    /**
     *reserved
     *
     * Generated from protobuf field <code>double boundary_layer_thickness = 23;</code>
     */
    protected $boundary_layer_thickness = 0.0;
    /**
     * Generated from protobuf field <code>repeated bool symmetries = 24;</code>
     */
    private $symmetries;
    /**
     *reserved
     *
     * Generated from protobuf field <code>uint64 background_n = 30;</code>
     */
    protected $background_n = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int|string $target_n
     *     @type int $max_iterations
     *     @type float $size_ratio
     *     @type float $size_decay
     *     @type float $size_exponent
     *     @type float $curv_ratio
     *     @type float $curv_decay
     *     @type float $curv_exponent
     *     @type float $node_radius
     *     @type \Messages\Extrema $bounds
     *     @type int $length_units
     *           0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)       
     *     @type bool $interior
     *     @type bool $exterior
     *     @type bool $shell
     *     @type bool $equalize
     *     @type bool $smooth
     *     @type bool $include_background
     *          reserved
     *     @type bool $keep_existing_points
     *     @type bool $auto_fit_domain
     *     @type float $boundary_layer_thickness
     *          reserved
     *     @type bool[]|\Google\Protobuf\Internal\RepeatedField $symmetries
     *     @type int|string $background_n
     *          reserved
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Spatial::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>uint64 target_n = 1;</code>
     * @return int|string
     */
    public function getTargetN()
    {
        return $this->target_n;
    }

    /**
     * Generated from protobuf field <code>uint64 target_n = 1;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTargetN($var)
    {
        GPBUtil::checkUint64($var);
        $this->target_n = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>uint32 max_iterations = 2;</code>
     * @return int
     */
    public function getMaxIterations()
    {
        return $this->max_iterations;
    }

    /**
     * Generated from protobuf field <code>uint32 max_iterations = 2;</code>
     * @param int $var
     * @return $this
     */
    public function setMaxIterations($var)
    {
        GPBUtil::checkUint32($var);
        $this->max_iterations = $var;

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>.Messages.Extrema bounds = 10;</code>
     * @return \Messages\Extrema|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>.Messages.Extrema bounds = 10;</code>
     * @param \Messages\Extrema $var
     * @return $this
     */
    public function setBounds($var)
    {
        GPBUtil::checkMessage($var, \Messages\Extrema::class);
        $this->bounds = $var;

        return $this;
    }

    /**
     * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)       
     *
     * Generated from protobuf field <code>uint32 length_units = 11;</code>
     * @return int
     */
    public function getLengthUnits()
    {
        return $this->length_units;
    }

    /**
     * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)       
     *
     * Generated from protobuf field <code>uint32 length_units = 11;</code>
     * @param int $var
     * @return $this
     */
    public function setLengthUnits($var)
    {
        GPBUtil::checkUint32($var);
        $this->length_units = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool interior = 12;</code>
     * @return bool
     */
    public function getInterior()
    {
        return $this->interior;
    }

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

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool shell = 14;</code>
     * @return bool
     */
    public function getShell()
    {
        return $this->shell;
    }

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

        return $this;
    }

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

    /**
     * Generated from protobuf field <code>bool equalize = 15;</code>
     * @param bool $var
     * @return $this
     */
    public function setEqualize($var)
    {
        GPBUtil::checkBool($var);
        $this->equalize = $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;
    }

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool keep_existing_points = 19;</code>
     * @return bool
     */
    public function getKeepExistingPoints()
    {
        return $this->keep_existing_points;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>bool auto_fit_domain = 20;</code>
     * @return bool
     */
    public function getAutoFitDomain()
    {
        return $this->auto_fit_domain;
    }

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

        return $this;
    }

    /**
     *reserved
     *
     * Generated from protobuf field <code>double boundary_layer_thickness = 23;</code>
     * @return float
     */
    public function getBoundaryLayerThickness()
    {
        return $this->boundary_layer_thickness;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated bool symmetries = 24;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSymmetries()
    {
        return $this->symmetries;
    }

    /**
     * Generated from protobuf field <code>repeated bool symmetries = 24;</code>
     * @param bool[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSymmetries($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::BOOL);
        $this->symmetries = $arr;

        return $this;
    }

    /**
     *reserved
     *
     * Generated from protobuf field <code>uint64 background_n = 30;</code>
     * @return int|string
     */
    public function getBackgroundN()
    {
        return $this->background_n;
    }

    /**
     *reserved
     *
     * Generated from protobuf field <code>uint64 background_n = 30;</code>
     * @param int|string $var
     * @return $this
     */
    public function setBackgroundN($var)
    {
        GPBUtil::checkUint64($var);
        $this->background_n = $var;

        return $this;
    }

}

