diff options
Diffstat (limited to 'html/en/func/region.html')
-rw-r--r-- | html/en/func/region.html | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/html/en/func/region.html b/html/en/func/region.html new file mode 100644 index 0000000..e503733 --- /dev/null +++ b/html/en/func/region.html @@ -0,0 +1,83 @@ +<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN"> +<html> + +<head> +<meta http-equiv="Content-Language" content="en-us"> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<title>Complex Clipping Regions</title> +<link rel="stylesheet" type="text/css" href="../../style.css"> +</head> + +<body> + +<h2 align="center">Complex Clipping Regions</h2> + + <p>A complex region can composed of boxes, sectors, chords, polygons and + texts. It is implemented only in the Windows GDI, GDI+ and X-Windows base drivers.</p> + + <p>Complex clipping regions can be created using <font><strong> + cdBegin(</strong></font><b><tt>CD_REGION</tt></b><font><strong>)/(filled + primtives)/.../cdEnd()</strong></font>. For more about cdBegin and cdEnd see + <a href="polygon.html">Polygons</a>.</p> + <p>Between a <strong><font>cdBegin(</font></strong><b><tt>CD_REGION</tt></b><strong><font>)</font></strong> + and a <strong><font>cdEnd()</font></strong>, all calls to + <font><strong>cdBox</strong></font>, <font> + <strong>cdSector</strong></font>, <font><strong>cdChord, + cdBegin(CD_FILL)/cdVertex(x,y)/.../cdEnd()</strong></font> and + <font><strong>cdText</strong></font> will be composed in a + region for clipping. This is the only exception when you can call a + <font><strong>cdBegin</strong></font> after another + <font><strong>cdBegin</strong></font>.</p> + <p>When you call <font><strong>cdBegin(</strong></font><b><tt>CD_REGION</tt></b><strong><font>)</font></strong> + a new empty region will be created. So for the first operation you should use + <b><tt>CD_UNION</tt></b> or <b><tt>CD_NOTINTERSECT</tt></b> combine modes. + When you finished to compose the region call <font><strong> + cdEnd()</strong></font>.</p> + <p>To make the region active you must call <strong><font> + cdClip(</font></strong><b><tt>CD_CLIPREGION</tt></b><strong><font>)</font></strong>. + For other clipping regions see <a href="clipping.html">Clipping</a>.</p> +<p>Complex clipping regions are not saved by <strong>cdSaveState</strong>.</p> + +<hr> +<pre class="function"><span class="mainFunction">int cdCanvasRegionCombineMode(cdCanvas* canvas, int mode); [in C]</span> + +canvas:RegionCombineMode(mode: number) -> (old_mode: number) [in Lua]</pre> + + <p>Changes the way regions are combined when created. Returns the previous + status. Values: <b><tt>CD_UNION, CD_INTERSECT, CD_DIFFERENCE or + CD_NOTINTERSECT</tt></b>. The value <b><tt>CD_QUERY</tt></b> simply returns + the current status. Default value: <b><tt>CD_UNION</tt></b>.</p> + <p align="center"><font size="4">Combine Modes<br> + </font><img src="../../img/regions.gif" border="2" width="297" height="361"></p> + +<pre class="function"><span class="mainFunction">int cdCanvasIsPointInRegion(cdCanvas* canvas, int x, int y); [in C]</span> + +canvas:IsPointInRegion(x, y: number) -> (status: number) [in Lua]</pre> + + <p>Returns a non zero value if the point is contained inside the current + region.</p> + +<pre class="function"><span class="mainFunction">void cdCanvasOffsetRegion(cdCanvas* canvas, int dx, int dy); [in C]</span> +void wdCanvasOffsetRegion(cdCanvas* canvas, double dx, double dy); (WC) [in C] + +canvas:OffsetRegion(dx, dy: number) [in Lua] +canvas:wOffsetRegion(dx, dy: number) (WC) [in Lua]</pre> + + <p>Moves the current region by the given offset. In X-Windows, if the region + moves to outside the canvas border, the part moved outside will be lost, the + region will need to be reconstruted.</p> + +<pre class="function"><span class="mainFunction">void cdCanvasGetRegionBox(cdCanvas* canvas, int *xmin, int *xmax, int *ymin, int *ymax); [in C]</span> +void wdCanvasGetRegionBox(cdCanvas* canvas, double *xmin, double *xmax, double *ymin, double *ymax); (WC) [in C] + +canvas:GetRegionBox() -> (xmin, xmax, ymin, ymax, status: number) [in Lua] +canvas:wGetRegionBox() -> (xmin, xmax, ymin, ymax, status: number) (WC) [in Lua]</pre> + + <p>Returns the rectangle of the bounding box of the current region. It is not + necessary to provide all return pointers, you can provide only the desired + values and <i><tt>NULL</tt></i> for the others.</p> + + +</body> + +</html> |