This file is indexed.

/usr/share/gtk-doc/html/goocanvas/goocanvas-coordinates.html is in libgoocanvas-dev 1.0.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Coordinate Spaces and Limits</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GooCanvas Reference Manual">
<link rel="up" href="ch01.html" title="Introduction">
<link rel="prev" href="goocanvas-architecture.html" title="Underlying Architecture">
<link rel="next" href="goocanvas-creating-items.html" title="Creating New Items">
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="goocanvas-architecture.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GooCanvas Reference Manual</th>
<td><a accesskey="n" href="goocanvas-creating-items.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry" title="Coordinate Spaces and Limits">
<a name="goocanvas-coordinates"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">Coordinate Spaces and Limits</span></h2>
<p>Coordinate Spaces and Limits — how coordinates are used.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1" title="Coordinate Spaces">
<a name="coordinates"></a><h2>Coordinate Spaces</h2>
<p>
      Items in the canvas typically have a number of properties specifying
      their location and size. For example the <a class="link" href="GooCanvasRect.html" title="GooCanvasRect"><span class="type">GooCanvasRect</span></a> item has
      <a class="link" href="GooCanvasRect.html#GooCanvasRect--x" title='The "x" property'><span class="type">"x"</span></a>, <a class="link" href="GooCanvasRect.html#GooCanvasRect--y" title='The "y" property'><span class="type">"y"</span></a>, <a class="link" href="GooCanvasRect.html#GooCanvasRect--width" title='The "width" property'><span class="type">"width"</span></a> and
      <a class="link" href="GooCanvasRect.html#GooCanvasRect--height" title='The "height" property'><span class="type">"height"</span></a> properties.
    </p>
<p>
      However, items can also have a transformation matrix (e.g. the
      <a class="link" href="GooCanvasItem.html#GooCanvasItem--transform" title='The "transform" property'><span class="type">"transform"</span></a> property).
      Transformation matrices modify the item's coordinate space in some
      way. Modifications include translation (moving the origin), rotation,
      scaling, and skewing, or combinations of these. Thus the final
      position of the item on the canvas can be altered dramatically.
    </p>
<p>
      The simple animation features in <a class="link" href="GooCanvas.html" title="GooCanvas"><span class="type">GooCanvas</span></a> are accomplished by
      modifying the item's transformation matrix over time.
      (See <a class="link" href="GooCanvasItem.html#goo-canvas-item-animate" title="goo_canvas_item_animate ()"><code class="function">goo_canvas_item_animate()</code></a>.)
    </p>
<p>
      Since items are in a hierarchy it is possible to move or rotate an
      entire group of items by simply changing the transformation matrix
      of the group containing them.
    </p>
<p>
      The coordinate space used within the item itself (e.g. where the
      <a class="link" href="GooCanvasRect.html#GooCanvasRect--x" title='The "x" property'><span class="type">"x"</span></a> and <a class="link" href="GooCanvasRect.html#GooCanvasRect--y" title='The "y" property'><span class="type">"y"</span></a> properties of a <a class="link" href="GooCanvasRect.html" title="GooCanvasRect"><span class="type">GooCanvasRect</span></a>
      are specified)
      is referred to as "Item Space". The coordinate space used by
      the entire canvas is referred to as "Canvas Space" (or "Device Space").
      "Item Space" and "Canvas Space" may or may not be the same, depending
      on whether
      the item or any of its ancestors have a transformation matrix set.
      (Note that the entire canvas may also be scrolled and/or zoomed,
      which means that there may be additional transformations above
      "Canvas Space".)
    </p>
<p>
      Functions are provided to convert between coordinate spaces,
      e.g. <a class="link" href="GooCanvas.html#goo-canvas-convert-to-item-space" title="goo_canvas_convert_to_item_space ()"><code class="function">goo_canvas_convert_to_item_space()</code></a> and
      <a class="link" href="GooCanvas.html#goo-canvas-convert-from-item-space" title="goo_canvas_convert_from_item_space ()"><code class="function">goo_canvas_convert_from_item_space()</code></a> convert canvas space coordinates
      to item space and vice versa.
    </p>
<div class="refsect2" title="Coordinate Limits">
<a name="coordinate-limits"></a><h3>Coordinate Limits</h3>
<p>
	GooCanvas uses the Cairo graphics library to render canvas items.
	For performance reasons Cairo uses 32-bit fixed point integers
	internally when rendering graphics, with 24 bits used for the integer
	part of values and 8 bits used for the fractional part.
	This means that values are limited to roughly +/- 8,388,608.
	(Prior to Cairo 1.6 16 bits were used for the integer part and 16 bits
	for the	fractional part, meaning values were limited to +/- 32,768.)
      </p>
<p>
	GooCanvas includes code to work around the Cairo limits to some extent.
	Subclasses of GooCanvasItemSimple (including all builtin items) can
	use any desired translation using a transformation matrix.
	But item space coordinates (modified by any scale, rotation or skew)
	must be within the Cairo limits.
      </p>
<p>
	It is possible to create new canvas items that avoid the Cairo
	limits completely. For an example of this see the "Large Items" page
	in the GooCanvas demo application, and the corresponding code.
      </p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.14</div>
</body>
</html>