* @copyright FancyManiaLinks Copyright © 2017 Steffen Schröder * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ class Style3d { /* * Constants */ const MODEL_Box = "Box"; const MODEL_Button = "Button"; const MODEL_ButtonH = "ButtonH"; const MODEL_Title = "Title"; const MODEL_Window = "Window"; /** * @var string $styleId Style ID */ protected $styleId = null; /** * @var string $model Style model */ protected $model = self::MODEL_Box; /** * @var float $thickness Thickness */ protected $thickness = null; /** * @var string $color Color */ protected $color = null; /** * @var string $focusColor Focus color */ protected $focusColor = null; /** * @var string $lightColor Light color */ protected $lightColor = null; /** * @var string $focusLightColor Focus light color */ protected $focusLightColor = null; /** * @var float $yOffset Y-offset */ protected $yOffset = null; /** * @var float $focusYOffset Focus Y-offset */ protected $focusYOffset = null; /** * @var float $zOffset Z-offset */ protected $zOffset = null; /** * @var float $focusZOffset Focus Z-offset */ protected $focusZOffset = null; /** * Create a new Style3d * * @api * @param string $styleId (optional) Style ID * @param string $model (optional) Style model * @return static */ public static function create($styleId = null, $model = null) { return new static($styleId, $model); } /** * Construct a new Style3d * * @api * @param string $styleId (optional) Style ID * @param string $model (optional) Style model */ public function __construct($styleId = null, $model = null) { if ($styleId) { $this->setId($styleId); } if ($model) { $this->setModel($model); } } /** * Get the Style ID * * @api * @return string */ public function getId() { return $this->styleId; } /** * Set the Style ID * * @api * @param string $styleId Style ID * @return static */ public function setId($styleId) { $this->styleId = (string)$styleId; return $this; } /** * Check the ID and assign one if necessary * * @return static */ public function checkId() { if (!$this->styleId) { $this->setId(new UniqueID()); } return $this; } /** * Get the model * * @api * @return string */ public function getModel() { return $this->model; } /** * Set the model * * @api * @param string $model Style model * @return static */ public function setModel($model) { $this->model = (string)$model; return $this; } /** * Get the thickness * * @api * @return float */ public function getThickness() { return $this->thickness; } /** * Set the thickness * * @api * @param float $thickness Style thickness * @return static */ public function setThickness($thickness) { $this->thickness = (float)$thickness; return $this; } /** * Get the color * * @api * @return string */ public function getColor() { return $this->color; } /** * Set the color * * @api * @param string $color Style color * @return static */ public function setColor($color) { $this->color = (string)$color; return $this; } /** * Get the focus color * * @api * @return string */ public function getFocusColor() { return $this->focusColor; } /** * Set the focus color * * @api * @param string $focusColor Style focus color * @return static */ public function setFocusColor($focusColor) { $this->focusColor = (string)$focusColor; return $this; } /** * Get the light color * * @api * @return string */ public function getLightColor() { return $this->lightColor; } /** * Set the light color * * @api * @param string $lightColor Light color * @return static */ public function setLightColor($lightColor) { $this->lightColor = (string)$lightColor; return $this; } /** * Get the focus light color * * @api * @return string */ public function getFocusLightColor() { return $this->focusLightColor; } /** * Set the focus light color * * @api * @param string $focusLightColor Focus light color * @return static */ public function setFocusLightColor($focusLightColor) { $this->focusLightColor = (string)$focusLightColor; return $this; } /** * Get the Y-offset * * @api * @return float */ public function getYOffset() { return $this->yOffset; } /** * Set the Y-offset * * @api * @param float $yOffset Y-offset * @return static */ public function setYOffset($yOffset) { $this->yOffset = (float)$yOffset; return $this; } /** * Get the focus Y-offset * * @api * @return float */ public function getFocusYOffset() { return $this->focusYOffset; } /** * Set the focus Y-offset * * @api * @param float $focusYOffset Focus Y-offset * @return static */ public function setFocusYOffset($focusYOffset) { $this->focusYOffset = (float)$focusYOffset; return $this; } /** * Get the Z-offset * * @api * @return float */ public function getZOffset() { return $this->zOffset; } /** * Set the Z-offset * * @api * @param float $zOffset Z-offset * @return static */ public function setZOffset($zOffset) { $this->zOffset = (float)$zOffset; return $this; } /** * Get the focus Z-offset * * @api * @return float */ public function getFocusZOffset() { return $this->focusZOffset; } /** * Set the focus Z-offset * * @api * @param float $focusZOffset Focus Z-offset * @return static */ public function setFocusZOffset($focusZOffset) { $this->focusZOffset = (float)$focusZOffset; return $this; } /** * Render the Style3d * * @param \DOMDocument $domDocument DOMDocument for which the Style3d should be rendered * @return \DOMElement */ public function render(\DOMDocument $domDocument) { $style3dXml = $domDocument->createElement("style3d"); $this->checkId(); if ($this->styleId) { $style3dXml->setAttribute("id", $this->styleId); } if ($this->model) { $style3dXml->setAttribute("model", $this->model); } if ($this->thickness) { $style3dXml->setAttribute("thickness", $this->thickness); } if ($this->color) { $style3dXml->setAttribute("color", $this->color); } if ($this->focusColor) { $style3dXml->setAttribute("fcolor", $this->focusColor); } if ($this->lightColor) { $style3dXml->setAttribute("lightcolor", $this->lightColor); } if ($this->focusLightColor) { $style3dXml->setAttribute("flightcolor", $this->focusLightColor); } if ($this->yOffset) { $style3dXml->setAttribute("yoffset", $this->yOffset); } if ($this->focusYOffset) { $style3dXml->setAttribute("fyoffset", $this->focusYOffset); } if ($this->zOffset) { $style3dXml->setAttribute("zoffset", $this->zOffset); } if ($this->focusZOffset) { $style3dXml->setAttribute("fzoffset", $this->focusZOffset); } return $style3dXml; } }