diff options
Diffstat (limited to 'docs/class.ImlibPoly.php')
| -rw-r--r-- | docs/class.ImlibPoly.php | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/docs/class.ImlibPoly.php b/docs/class.ImlibPoly.php new file mode 100644 index 0000000..698c752 --- /dev/null +++ b/docs/class.ImlibPoly.php @@ -0,0 +1,190 @@ +<?php + +/** +* Does everything relevant to creating and drawing or filling an n-point polygon +* +* The routine for getting a polygon onto an image is generally to create one, +* add all its points (The order in which the points are added determines how +* the polygon will be drawn), set the image to draw on, and draw. +* +* @version 0.3 +* @author Matt McClanahan <cardinal@dodds.net> +* @package Imlib +* @access public +*/ +class ImlibPoly extends ImlibCliprect +{ + /** + * Resource id# of the image to draw on + * + * @access private + */ + var $im; + + /** + * The resource id# of the current polygon + * + * @access private + */ + var $poly; + + /** + * ImlibPoly constructor + * + * @access public + */ + function ImlibPoly() + { + $this->cliprect = 0; + $this->cliprect_inuse = 0; + $this->color = 0; + $this->im = 0; + $this->poly = 0; + } + + /** + * Add a point to the current polygon + * + * @param int X coordinate + * @param int Y coordinate + * @return bool False if there is no polygon set + * @access public + */ + function add_point($x,$y) + { + if (!is_resource($this->poly)) + return false; + + imlib_polygon_add_point($this->poly,$x,$y); + } + + /** + * Checks if the current polygon contains a given point + * + * @param int X coordinate + * @param int Y coordinate + * @return bool True if it does, false otherwise + * @access public + */ + function contains_point($x,$y) + { + if (!is_resource($this->poly)) + return false; + + return imlib_polygon_contains_point($this->poly,$x,$y); + } + + /** + * Draw the current polygon on the current image + * + * @param integer If true, the polygon will be drawn with the endpoints connected + * @return bool False if there is no polygon or image set + * @access public + */ + function draw($closed=1) + { + if (!is_resource($this->im) || !is_resource($this->poly)) + return false; + + if (!$this->get_color($r,$g,$b,$a)) + list($r,$g,$b,$a) = Array(255,255,255,255); + + if ($this->cliprect_inuse) + imlib_image_draw_polygon($this->im,$this->poly,$closed,$r,$g,$b,$a, + $this->get_cliprect_array()); + else + imlib_image_draw_polygon($this->im,$this->poly,$closed,$r,$g,$b,$a); + } + + /** + * Fill the current polygon on the current image + * + * @return bool False if there is no polygon or image set + * @access public + */ + function fill() + { + if (!is_resource($this->im) || !is_resource($this->poly)) + return false; + + if (!$this->get_color($r,$g,$b,$a)) + list($r,$g,$b,$a) = Array(255,255,255,255); + + if ($this->cliprect_inuse) + imlib_image_fill_polygon($this->im,$this->poly,$r,$g,$b,$a, + $this->get_cliprect_array()); + else + imlib_image_fill_polygon($this->im,$this->poly,$r,$g,$b,$a); + } + + /** + * Free the current polygon + * + * @return bool False if there is no polygon or image set + * @access public + */ + function free() + { + if (!is_resource($this->poly)) + return false; + + imlib_polygon_free($this->poly); + $this->poly = 0; + } + + /** + * Get the bounds of the polygon + * + * @param int Upper left X coordinate + * @param int Upper left Y coordinate + * @param int Lower right X coordinate + * @param int Lower right Y coordinate + * @return bool False if there is no polygon or image set + * @access public + */ + function get_bounds(&$x1,&$y1,&$x2,&$y2) + { + if (!is_resource($this->poly)) + return false; + + imlib_polygon_get_bounds($this->poly,&$x1,&$y1,&$x2,&$y2); + } + + /** + * Get the current image resource id# + * + * @return int Current image resource id# + * @access public + */ + function get_image() + { + return $this->im; + } + + /** + * Create a new polygon + * + * @return int Resource id# of the new polygon + * @access public + */ + function new_poly() + { + if (is_resource($this->poly)) + return false; + + return $this->poly = imlib_polygon_new(); + } + + /** + * Set the image resource id# to draw on + * + * @param int Image resource id# + * @access public + */ + function set_image($im) + { + $this->im = $im; + } +}; + +?> |
