summaryrefslogtreecommitdiffhomepage
path: root/docs/class.ImlibPoly.php
diff options
context:
space:
mode:
Diffstat (limited to 'docs/class.ImlibPoly.php')
-rw-r--r--docs/class.ImlibPoly.php190
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;
+ }
+};
+
+?>