1<?php 2 3/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ 4 5/** 6 * 3d Library 7 * 8 * PHP versions 5 9 * 10 * LICENSE: 11 * This library is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU Lesser General Public 13 * License as published by the Free Software Foundation; either 14 * version 2.1 of the License, or (at your option) any later version. 15 * 16 * This library is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * Lesser General Public License for more details. 20 * 21 * You should have received a copy of the GNU Lesser General Public 22 * License along with this library; if not, write to the Free Software 23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 24 * 25 * @category Image 26 * @package Image_3D 27 * @author Kore Nordmann <3d@kore-nordmann.de> 28 * @copyright 1997-2005 Kore Nordmann 29 * @license http://www.gnu.org/licenses/lgpl.txt lgpl 2.1 30 * @version CVS: $Id$ 31 * @link http://pear.php.net/package/PackageName 32 * @since File available since Release 0.1.0 33 */ 34 35require_once('Image/3D/Paintable/Object.php'); 36 37/** 38 * Image_3D_Object_Cube 39 * 40 * @category Image 41 * @package Image_3D 42 * @author Kore Nordmann <3d@kore-nordmann.de> 43 * @copyright 1997-2005 Kore Nordmann 44 * @license http://www.gnu.org/licenses/lgpl.txt lgpl 2.1 45 * @version Release: @package_version@ 46 * @link http://pear.php.net/package/PackageName 47 * @since Class available since Release 0.1.0 48 */ 49class Image_3D_Object_Quadcube extends Image_3D_Object { 50 51 protected $_points; 52 53 public function __construct($parameter) { 54 parent::__construct(); 55 56 $x = (float) @$parameter[0]; 57 $y = (float) @$parameter[1]; 58 $z = (float) @$parameter[2]; 59 60 $this->_points = array(); 61 62 $this->_points[1] = new Image_3D_Point(-$x / 2, -$y / 2, -$z / 2); 63 $this->_points[2] = new Image_3D_Point(-$x / 2, -$y / 2, $z / 2); 64 65 $this->_points[3] = new Image_3D_Point(-$x / 2, $y / 2, -$z / 2); 66 $this->_points[4] = new Image_3D_Point(-$x / 2, $y / 2, $z / 2); 67 68 $this->_points[5] = new Image_3D_Point( $x / 2, -$y / 2, -$z / 2); 69 $this->_points[6] = new Image_3D_Point( $x / 2, -$y / 2, $z / 2); 70 71 $this->_points[7] = new Image_3D_Point( $x / 2, $y / 2, -$z / 2); 72 $this->_points[8] = new Image_3D_Point( $x / 2, $y / 2, $z / 2); 73 74 // Oben & Unten 75 $this->_addPolygon(new Image_3D_Polygon($this->_points[3], $this->_points[4], $this->_points[8], $this->_points[7])); 76 $this->_addPolygon(new Image_3D_Polygon($this->_points[2], $this->_points[1], $this->_points[5], $this->_points[6])); 77 78 // Links & Rechts 79 $this->_addPolygon(new Image_3D_Polygon($this->_points[3], $this->_points[1], $this->_points[2], $this->_points[4])); 80 $this->_addPolygon(new Image_3D_Polygon($this->_points[8], $this->_points[6], $this->_points[5], $this->_points[7])); 81 82 // Rueck- & Frontseite 83 $this->_addPolygon(new Image_3D_Polygon($this->_points[2], $this->_points[6], $this->_points[8], $this->_points[4])); 84 $this->_addPolygon(new Image_3D_Polygon($this->_points[1], $this->_points[3], $this->_points[7], $this->_points[5])); 85 } 86} 87