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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
<html>
<head>
<title>Developer's Guide: The class GraphicsObject</title>
</head>
<body bgcolor=white text=black link=blue vlink=navy alink=red>
<TABLE WIDTH="100%">
<TR>
<TH ALIGN="left" WIDTH="33%"><img SRC="Images/arrow-left.png" WIDTH="16" HEIGHT="16" ALIGN="top" ALT="Prev"></TH>
<TH ALIGN="center" WIDTH="33%"><img SRC="Images/arrow-up.png" WIDTH="16" HEIGHT="16" ALIGN="top" ALT="Up"></TH>
<TH ALIGN="right" WIDTH="33%"><img SRC="Images/arrow-right.png" WIDTH="16" HEIGHT="16" ALIGN="top" ALT="Next"></TH>
</TR>
<TR>
<TD ALIGN="left"><A HREF="devguide-10.html">Class Hierarchy
</A></TD>
<TD ALIGN="center"><A HREF="devguide-9.html">The Document and Graphics Classes</A></TD>
<TD ALIGN="right"><A HREF="devguide-12.html">The class Bounded
</A></TD>
</TR>
</TABLE>
<HR NOSHADE>
<H2><FONT face="Helvetica,Arial"><A NAME="N1"></A>The class <A NAME="N2"></A><tt>GraphicsObject</tt></font></H2>
<P>Base Classes: <A HREF="devguide-12.html#N2"><tt>Bounded</tt></A>, <A HREF="devguide-13.html#N2"><tt>HierarchyNode</tt></A>, <A HREF="devguide-15.html#N2"><tt>Selectable</tt></A> and <A HREF="devguide-14.html#N2"><tt>Protocols</tt></A>.</P>
<P>The class <tt>GraphicsObject</tt> defines the interface common to all
graphics objects.</P>
<P>For convenience of implementation, and because their interfaces are
needed elsewhere in the class hierarchy as well, some parts of this
interface are defined by the base classes:</P>
<P>
<DL>
<DT><B><A HREF="devguide-12.html#N2"><tt>Bounded</tt></A></B><DD>
<P>provides instance variables for
the vertical and horizontal dimensions of a graphics object and
some related methods.</P>
<DT><B><A HREF="devguide-13.html#N2"><tt>HierarchyNode</tt></A></B><DD>
<P>provides the default
behavior for all methods related to the management of the
object hierarchy in the document.</P>
<DT><B><A HREF="devguide-15.html#N2"><tt>Selectable</tt></A></B><DD>
<P>defines the generic interface
and default behavior for selection.</P>
<DT><B><A HREF="devguide-14.html#N2"><tt>Protocols</tt></A></B><DD>
<P>has some variables that
describe the object's capabilities.</P>
</DL>
</P>
<H3><FONT face="Helvetica,Arial"><A NAME="N3"></A>Instance Variables</font></H3>
<P><tt>GraphicsObject</tt> maintains no instance variables of its own, but uses
those managed by its base classes.</P>
<H3><FONT face="Helvetica,Arial"><A NAME="N4"></A>Methods</font></H3>
<P>Methods defined in <tt>GraphicsObject</tt>:</P>
<P>
<DL>
<DT><B><A NAME="N5"></A><tt>Blend(<i>other</i>, <i>frac1</i>, <i>frac2</i>)</tt></B><DD>
<P>Return the weighted average of <i>self</i> and <i>other</i>.
<i>frac1</i> and <i>frac2</i> are the weights (if <i>self</i> and
<i>other</i> were numbers this should be <i>frac1</i> * <i>self</i>
+ <i>frac2</i> * <i>other</i>).</P>
<P>This method is used by the function <tt>Blend</tt> in
<tt>blend.py</tt>. If <i>self</i> and <i>other</i> can't be blended,
raise the <CODE>blend.Mismatch</CODE> exception. This is the default
behavior.</P>
<DT><B><A NAME="N6"></A><tt>AsBezier()</tt></B><DD>
<P>Return self as a <tt>PolyBezier</tt> object if possible.
If this is not possible, return <CODE>None</CODE>.</P>
</DL>
</P>
<P>The following methods are not implemented in <tt>GraphicsObject</tt>
directly, but must be defined for every graphics object. The derived
classes <A HREF="devguide-16.html#N2"><tt>Primitive</tt></A> and <A HREF="devguide-17.html#N2"><tt>Compound</tt></A>
provide a default implementation for most objects.</P>
<P>
<DL>
<DT><B><A NAME="N7"></A><tt>Transform(<i>trafo</i>)</tt></B><DD>
<P>Apply the <A HREF="devguide-7.html">transformation object</A>
<i>trafo</i> to self. Return undo info.</P>
<DT><B><A NAME="N8"></A><tt>Translate(<i>offset</i>)</tt></B><DD>
<P>Translate (move) self by <i>offset</i>. <i>offset</i> is a <A HREF="devguide-5.html">point object</A>. Return undo info.</P>
<DT><B><A NAME="N9"></A><tt>DrawShape(<i>device</i> [, <i>clip</i>])</tt></B><DD>
<P>Draw self on <i>device</i>. <i>device</i> is a graphics device
.</P>
<P>The optional parameter <i>clip</i> is only provided if the object
is used as a clip mask. If it is provided its value is 1.
Objects that can be used as clip masks (their <CODE>is_clip</CODE> flag
is true) request appropriate clipping from the graphics device.
Objects that cannot be used as clip masks don't need to accept
it.</P>
<P>(Note: The clipping interface for the high level drawing
operations of the graphics devices is somewhat experimental)</P>
<DT><B><A NAME="N10"></A><tt>SaveToFile(<i>file</i>)</tt></B><DD>
<P>Save self to file. The argument <i>file</i> is currently an
instance of the class <tt>SKSaver</tt> which provides
special methods for the object types currently implemented in
Sketch.</P>
</DL>
</P>
<HR NOSHADE>
<TABLE WIDTH="100%">
<TR>
<TD ALIGN="left"><A HREF="devguide-10.html">Class Hierarchy
</A></TD>
<TD ALIGN="center"><A HREF="devguide-9.html">The Document and Graphics Classes</A></TD>
<TD ALIGN="right"><A HREF="devguide-12.html">The class Bounded
</A></TD>
</TR>
<TR>
<TH ALIGN="left" WIDTH="33%"><img SRC="Images/arrow-left.png" WIDTH="16" HEIGHT="16" ALIGN="top" ALT="Prev"></TH>
<TH ALIGN="center" WIDTH="33%"><img SRC="Images/arrow-up.png" WIDTH="16" HEIGHT="16" ALIGN="top" ALT="Up"></TH>
<TH ALIGN="right" WIDTH="33%"><img SRC="Images/arrow-right.png" WIDTH="16" HEIGHT="16" ALIGN="top" ALT="Next"></TH>
</TR>
</TABLE>
</body>
</html>
|