1
<html><head><TITLE>Shape</TITLE></head>
3
<H2><A HREF ="#DOC.DOCU" > <IMG BORDER=0 SRC=down.gif></A> class Shape : public <!2><A HREF="Thing.html#DOC.385.2">Thing</A> </H2><BLOCKQUOTE>
4
(abstract) shape class, superclass of all possible shapes (graphics + text).
8
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
9
<param name=classes value="CThing,MThing.html,CShape,MShape.html,CTextShape,MTextShape.html,CGShape,MGShape.html">
10
<param name=before value="M,M,M|_,Mr_">
11
<param name=after value="Md_,M,M,M">
12
<param name=indent value="0,1,1,1">
13
<param name=arrowdir value="down">
19
<DT><h3>Public Fields</h3><DD><TR><TD VALIGN=top><A HREF="#DOC.296.40"> <IMG BORDER=0 SRC=icon1.gif></A> static const int </TD><TD><B>MIN_HEIGHT</B> <br>
20
<I> minimal height of a shape.</I>
21
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.41"> <IMG BORDER=0 SRC=icon1.gif></A> static const int </TD><TD><B>MIN_WIDTH</B> <br>
22
<I> minimal width of a shape.</I>
23
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.65"> <IMG BORDER=0 SRC=icon1.gif></A> static const int </TD><TD><B>HANDLE_WIDTH</B> <br>
24
<I> size of selection handle.</I>
25
</TD></TR></TABLE><TABLE>
26
<DT><h3>Public Methods</h3><DD><TR><TD VALIGN=top><A HREF="#DOC.296.1"> <IMG BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Shape</B> (<!1><A HREF="ShapeView.html">ShapeView</A> *s, <!1><A HREF="Grafport.html">Grafport</A> *g)<br>
27
<I> creates a shape at position (0,0) and size (0,0).</I>
28
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.2"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>IsShape</B> () const <br>
30
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.3"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>IsTextShape</B> () const <br>
32
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.4"> <IMG BORDER=0 SRC=icon1.gif></A> virtual <!2><A HREF="Shape.html#DOC.296.1">Shape</A>* </TD><TD><B>Clone</B> ()<br>
34
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.5"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>Draw</B> ()<br>
35
<I> Draws the shape: shape itself and its text and selection handles.</I>
36
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.6"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>Undraw</B> ()<br>
37
<I> Erases the shape: by redrawing it in XOR mode.</I>
38
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.7"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UpdatePosition</B> (const <!1><A HREF="Point.html">Point</A> *<!2><A HREF="Shape.html#DOC.296.90">position</A>, bool snap=True)<br>
39
<I> update position and redraw.</I>
40
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.8"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UpdateSize</B> (int w, int h)<br>
41
<I> update size and redraw.</I>
42
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.9"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UpdateMove</B> (const <!1><A HREF="Point.html">Point</A> *delta)<br>
43
<I> update movement and redraw.</I>
44
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.10"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UpdateSelect</B> (bool s)<br>
45
<I> update selection handles and redraw.</I>
46
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.11"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UpdateFirstSelect</B> (bool s)<br>
47
<I> update first selection handles and redraw.</I>
48
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.12"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UpdateColor</B> (<!1><A HREF="string.html">string</A> *<!2><A HREF="Shape.html#DOC.296.97">color</A>)<br>
49
<I> update color and redraw.</I>
50
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.13"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetSelect</B> (bool s)<br>
52
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.14"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetFirstSelect</B> (bool s)<br>
54
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.15"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>IsFirstSelected</B> () const <br>
56
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.16"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetVisible</B> (bool s)<br>
58
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.17"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetSubject</B> (<!1><A HREF="Subject.html">Subject</A> *s)<br>
60
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.18"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetView</B> (<!1><A HREF="ShapeView.html">ShapeView</A> *v)<br>
62
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.19"> <IMG BORDER=0 SRC=icon1.gif></A> <!1><A HREF="Subject.html">Subject</A>* </TD><TD><B>GetSubject</B> () const <br>
64
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.20"> <IMG BORDER=0 SRC=icon1.gif></A> <!1><A HREF="ShapeView.html">ShapeView</A>* </TD><TD><B>GetView</B> () const <br>
66
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.21"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetGrafport</B> (<!1><A HREF="Grafport.html">Grafport</A> *g)<br>
68
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.22"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetColor</B> (const <!1><A HREF="string.html">string</A> *c)<br>
70
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.23"> <IMG BORDER=0 SRC=icon1.gif></A> const <!1><A HREF="string.html">string</A>* </TD><TD><B>GetColor</B> () const <br>
72
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.24"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>Move</B> (const <!1><A HREF="Point.html">Point</A> *delta)<br>
73
<I> move position by delta.</I>
74
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.25"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>AdjustSize</B> ()<br>
75
<I> update size to make the shape fit the text shape strings.</I>
76
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.26"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>DrawOutLine</B> (const <!1><A HREF="Point.html">Point</A> *center)<br>
77
<I> Draw outline of the shape (when it is dragged).</I>
78
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.27"> <IMG BORDER=0 SRC=icon1.gif></A> virtual <!1><A HREF="Point.html">Point</A> </TD><TD><B>GiveSnp</B> (<!1><A HREF="Point.html">Point</A>) const <br>
79
<I> intersection of boundary and line from given point to shape center.</I>
80
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.28"> <IMG BORDER=0 SRC=icon1.gif></A> virtual <!1><A HREF="Point.html">Point</A> </TD><TD><B>GiveSnp</B> (<!1><A HREF="Point.html">Point</A>, int, int, int &)<br>
81
<I> As GiveSnp but takes into account distribution of multiple lines.</I>
82
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.29"> <IMG BORDER=0 SRC=icon1.gif></A> virtual <!1><A HREF="Point.html">Point</A> </TD><TD><B>GiveOrthoSnp</B> (<!1><A HREF="Point.html">Point</A> to) const <br>
83
<I> Calc the intersection of an orthogonal line with shape boundary. </I>
84
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.30"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetHandles</B> (int n)<br>
85
<I> set n handle rectangles.</I>
86
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.31"> <IMG BORDER=0 SRC=icon1.gif></A> virtual int </TD><TD><B>HitHandles</B> (int x, int y)<br>
87
<I> Return (x,y) handle hit (-1 if not, 0 when shape is line).</I>
88
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.32"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>ContainsPt</B> (int x, int y)<br>
89
<I> returns whether (x,y) is geometrically in the shape.</I>
90
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.33"> <IMG BORDER=0 SRC=icon1.gif></A> const <!1><A HREF="Point.html">Point</A>* </TD><TD><B>GetPosition</B> () const <br>
92
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.34"> <IMG BORDER=0 SRC=icon1.gif></A> const <!1><A HREF="Point.html">Point</A>* </TD><TD><B>GetTopLeft</B> () const <br>
94
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.35"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>IsSelected</B> () const <br>
96
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.36"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>IsVisible</B> () const <br>
98
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.37"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>IsDuplicate</B> () const <br>
100
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.38"> <IMG BORDER=0 SRC=icon1.gif></A> int </TD><TD><B>GetWidth</B> () const <br>
102
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.39"> <IMG BORDER=0 SRC=icon1.gif></A> int </TD><TD><B>GetHeight</B> () const <br>
104
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.42"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>DrawDuplicate</B> ()<br>
105
<I> draw duplication indicator (asterisk).</I>
106
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.43"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>UndrawDuplicate</B> ()<br>
108
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.44"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetDuplicate</B> (bool b)<br>
110
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.45"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>UpdateDuplicate</B> (bool b)<br>
111
<I> set whether shape is a duplicate shape.</I>
112
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.46"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>IsLine</B> () const <br>
114
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.47"> <IMG BORDER=0 SRC=icon1.gif></A> virtual int </TD><TD><B>GetLeftMost</B> () const <br>
115
<I> smallest x-coordinate in shape.</I>
116
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.48"> <IMG BORDER=0 SRC=icon1.gif></A> virtual int </TD><TD><B>GetTopMost</B> () const <br>
117
<I> smallest y-coordinate in shape. </I>
118
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.49"> <IMG BORDER=0 SRC=icon1.gif></A> virtual int </TD><TD><B>GetRightMost</B> () const <br>
119
<I> largest x-coordinate in shape.</I>
120
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.50"> <IMG BORDER=0 SRC=icon1.gif></A> virtual int </TD><TD><B>GetBottomMost</B> () const <br>
121
<I> largest y-coordinate in shape.</I>
122
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.51"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>WriteMembers</B> (<!1><A HREF="OutputFile.html">OutputFile</A> *ofile)<br>
123
<I> write members of shape to file.</I>
124
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.52"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>ReadMembers</B> (<!1><A HREF="InputFile.html">InputFile</A> *f, double format)<br>
125
<I> read and parse shape members from file ofile.</I>
126
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.53"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>SetAssocSubject</B> (<!1><A HREF="AssocList.html">AssocList</A> *)<br>
127
<I> update subject reference from assocList.</I>
128
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.54"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>SetAssocView</B> (<!1><A HREF="AssocList.html">AssocList</A> *)<br>
129
<I> update view reference from assocList.</I>
130
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.55"> <IMG BORDER=0 SRC=icon1.gif></A> bool </TD><TD><B>CheckReferences</B> ()<br>
131
<I> Check if subject exists as graph element and that view exists.</I>
132
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.56"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetTextShape</B> ()<br>
133
<I> update the strings of text shapes with the subject strings.</I>
134
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.57"> <IMG BORDER=0 SRC=icon1.gif></A> virtual <!1><A HREF="TextShape.html">TextShape</A>* </TD><TD><B>ChooseTextShape</B> (int, int)<br>
135
<I> return a text shape near (x,y).</I>
136
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.58"> <IMG BORDER=0 SRC=icon1.gif></A> virtual <!1><A HREF="TextShape.html">TextShape</A>* </TD><TD><B>HitTextShape</B> (int, int)<br>
137
<I> return the text shape at (x,y).</I>
138
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.59"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>InTextArea</B> (int x, int y)<br>
139
<I> Returns if (x,y) is in text-area.</I>
140
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.60"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>HasNameString</B> (const <!1><A HREF="string.html">string</A> *, bool, bool) const <br>
141
<I> true if shape's name text shape contains 's'.</I>
142
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.61"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>HasString</B> (const <!1><A HREF="string.html">string</A> *, bool, bool) const <br>
143
<I> true if some of shape's text shapes contains 's'.</I>
144
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.62"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>HasString</B> (const <!1><A HREF="string.html">string</A> *, bool, bool, <!1><A HREF="List.html">List</A><<!1><A HREF="TextShape.html">TextShape</A> *> *)<br>
145
<I> put all text shapes containing 's' in the list l.</I>
146
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.63"> <IMG BORDER=0 SRC=icon1.gif></A> virtual bool </TD><TD><B>HasTextShape</B> (<!1><A HREF="TextShape.html">TextShape</A> *t) const <br>
147
<I> return if it has t as one of the text shapes.</I>
148
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.64"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>MoveRaw</B> (const <!1><A HREF="Point.html">Point</A> *delta)<br>
149
<I> move the shape over exact delta, without snap.</I>
150
</TD></TR></TABLE><TABLE>
151
<DT><h3>Protected Fields</h3><DD><TR><TD VALIGN=top><A HREF="#DOC.296.78"> <IMG BORDER=0 SRC=icon1.gif></A> static const int </TD><TD><B>MIN_HANDLES</B> <br>
152
<I> minimal nr. of handles.</I>
153
</TD></TR></TABLE><TABLE>
154
<DT><h3>Protected Methods</h3><DD><TR><TD VALIGN=top><A HREF="#DOC.296.66"> <IMG BORDER=0 SRC=icon1.gif></A> <!1><A HREF="Grafport.html">Grafport</A>* </TD><TD><B>GetGrafport</B> () const <br>
156
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.67"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetDrawAttributes</B> ()<br>
157
<I> set attributes of grafport before drawing.</I>
158
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.68"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetOutlineAttributes</B> ()<br>
159
<I> set attributes of grafport for drawing outlines.</I>
160
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.69"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetSize</B> (int w, int h)<br>
161
<I> set the size of the shape (with a minimum).</I>
162
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.70"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetPosition</B> (const <!1><A HREF="Point.html">Point</A> *<!2><A HREF="Shape.html#DOC.296.90">position</A>, bool snap=True)<br>
163
<I> set the position (takes into account the grid when snap=True).</I>
164
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.71"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SnapTopleft</B> ()<br>
165
<I> align the shape to the grid (by its topleft).</I>
166
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.72"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SnapPosition</B> ()<br>
167
<I> align the shape to the grid (by its center).</I>
168
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.73"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetWidth</B> (int w)<br>
170
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.74"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetHeight</B> (int h)<br>
172
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.75"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetNrHandles</B> (int n)<br>
174
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.76"> <IMG BORDER=0 SRC=icon1.gif></A> <!1><A HREF="DiagramViewer.html">DiagramViewer</A>* </TD><TD><B>GetViewer</B> () const <br>
176
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.77"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>PositiveCoord</B> (const <!1><A HREF="Point.html">Point</A>*)<br>
177
<I> change position so that shape has only positive coordinates.</I>
178
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.79"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>DrawSelect</B> ()<br>
179
<I> Draw the handles if object is (first) selected.</I>
180
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.80"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>DrawGraySelect</B> ()<br>
181
<I> Draw grey handles if the object is selected.</I>
182
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.81"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UndrawSelect</B> ()<br>
184
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.82"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>UndrawGraySelect</B> ()<br>
186
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.83"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>SetTopLeft</B> (const <!1><A HREF="Point.html">Point</A> *topLeft)<br>
187
<I> set the top-left and position (take into account width and height).</I>
188
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.84"> <IMG BORDER=0 SRC=icon1.gif></A> virtual void </TD><TD><B>SetPositionHandles</B> ()<br>
189
<I> set all handle rectangles. </I>
190
</TD></TR><TR><TD VALIGN=top><A HREF="#DOC.296.85"> <IMG BORDER=0 SRC=icon1.gif></A> void </TD><TD><B>ForcePosition</B> (const <!1><A HREF="Point.html">Point</A> *<!2><A HREF="Shape.html#DOC.296.90">position</A>)<br>
192
</TD></TR></TABLE></DL>
193
<hr><H3>Inherited from <A HREF="Thing.html">Thing:</A></h3>
197
<DT><h3>Public Classes</h3><DD><DT><IMG SRC=icon2.gif> enum <B>AssocType</B>
199
<DT><h3>Public Methods</h3><DD><DT><IMG SRC=icon2.gif> unsigned long <B>GetId</B>()
200
<DT><IMG SRC=icon2.gif> void <B>SetId</B>(unsigned long val)
201
<DT><IMG SRC=icon2.gif> virtual bool <B>IsSubject</B>() const
202
<DT><IMG SRC=icon2.gif> virtual bool <B>IsView</B>() const
203
<DT><IMG SRC=icon2.gif> virtual int <B>GetClassType</B>() const
204
<DT><IMG SRC=icon2.gif> void <B>Write</B>(<!1><A HREF="OutputFile.html">OutputFile</A> *ofile)
205
<DT><IMG SRC=icon2.gif> virtual bool <B>SetReferences</B>(<!1><A HREF="AssocList.html">AssocList</A> *)
209
<h2> Documentation </h2>
211
(abstract) shape class, superclass of all possible shapes (graphics + text).
217
<A NAME ="DOC.296.1">
218
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> Shape(<!1><A HREF="ShapeView.html">ShapeView</A> *s, <!1><A HREF="Grafport.html">Grafport</A> *g)</B></TT>
219
<DD> creates a shape at position (0,0) and size (0,0).
222
<A NAME ="DOC.296.2">
223
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool IsShape() const </B></TT>
225
<A NAME="IsTextShape">
226
<A NAME ="DOC.296.3">
227
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool IsTextShape() const </B></TT>
230
<A NAME ="DOC.296.4">
231
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual <!2><A HREF="Shape.html#DOC.296.1">Shape</A>* Clone()</B></TT>
234
<A NAME ="DOC.296.5">
235
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void Draw()</B></TT>
236
<DD> Draws the shape: shape itself and its text and selection handles.
239
<A NAME ="DOC.296.6">
240
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void Undraw()</B></TT>
241
<DD> Erases the shape: by redrawing it in XOR mode.
243
<A NAME="UpdatePosition">
244
<A NAME ="DOC.296.7">
245
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UpdatePosition(const <!1><A HREF="Point.html">Point</A> *<!2><A HREF="Shape.html#DOC.296.90">position</A>, bool snap=True)</B></TT>
246
<DD> update position and redraw.
248
<A NAME="UpdateSize">
249
<A NAME ="DOC.296.8">
250
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UpdateSize(int w, int h)</B></TT>
251
<DD> update size and redraw.
253
<A NAME="UpdateMove">
254
<A NAME ="DOC.296.9">
255
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UpdateMove(const <!1><A HREF="Point.html">Point</A> *delta)</B></TT>
256
<DD> update movement and redraw.
258
<A NAME="UpdateSelect">
259
<A NAME ="DOC.296.10">
260
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UpdateSelect(bool s)</B></TT>
261
<DD> update selection handles and redraw.
263
<A NAME="UpdateFirstSelect">
264
<A NAME ="DOC.296.11">
265
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UpdateFirstSelect(bool s)</B></TT>
266
<DD> update first selection handles and redraw.
268
<A NAME="UpdateColor">
269
<A NAME ="DOC.296.12">
270
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UpdateColor(<!1><A HREF="string.html">string</A> *<!2><A HREF="Shape.html#DOC.296.97">color</A>)</B></TT>
271
<DD> update color and redraw.
274
<A NAME ="DOC.296.13">
275
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetSelect(bool s)</B></TT>
277
<A NAME="SetFirstSelect">
278
<A NAME ="DOC.296.14">
279
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetFirstSelect(bool s)</B></TT>
281
<A NAME="IsFirstSelected">
282
<A NAME ="DOC.296.15">
283
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool IsFirstSelected() const </B></TT>
285
<A NAME="SetVisible">
286
<A NAME ="DOC.296.16">
287
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetVisible(bool s)</B></TT>
289
<A NAME="SetSubject">
290
<A NAME ="DOC.296.17">
291
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetSubject(<!1><A HREF="Subject.html">Subject</A> *s)</B></TT>
294
<A NAME ="DOC.296.18">
295
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetView(<!1><A HREF="ShapeView.html">ShapeView</A> *v)</B></TT>
297
<A NAME="GetSubject">
298
<A NAME ="DOC.296.19">
299
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> <!1><A HREF="Subject.html">Subject</A>* GetSubject() const </B></TT>
302
<A NAME ="DOC.296.20">
303
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> <!1><A HREF="ShapeView.html">ShapeView</A>* GetView() const </B></TT>
305
<A NAME="SetGrafport">
306
<A NAME ="DOC.296.21">
307
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetGrafport(<!1><A HREF="Grafport.html">Grafport</A> *g)</B></TT>
310
<A NAME ="DOC.296.22">
311
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetColor(const <!1><A HREF="string.html">string</A> *c)</B></TT>
314
<A NAME ="DOC.296.23">
315
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> const <!1><A HREF="string.html">string</A>* GetColor() const </B></TT>
318
<A NAME ="DOC.296.24">
319
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void Move(const <!1><A HREF="Point.html">Point</A> *delta)</B></TT>
320
<DD> move position by delta.
322
<A NAME="AdjustSize">
323
<A NAME ="DOC.296.25">
324
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void AdjustSize()</B></TT>
325
<DD> update size to make the shape fit the text shape strings.
327
<A NAME="DrawOutLine">
328
<A NAME ="DOC.296.26">
329
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void DrawOutLine(const <!1><A HREF="Point.html">Point</A> *center)</B></TT>
330
<DD> Draw outline of the shape (when it is dragged).
333
<A NAME ="DOC.296.27">
334
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual <!1><A HREF="Point.html">Point</A> GiveSnp(<!1><A HREF="Point.html">Point</A>) const </B></TT>
335
<DD> intersection of boundary and line from given point to shape center.
338
<A NAME ="DOC.296.28">
339
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual <!1><A HREF="Point.html">Point</A> GiveSnp(<!1><A HREF="Point.html">Point</A>, int, int, int &)</B></TT>
340
<DD> As GiveSnp but takes into account distribution of multiple lines.
342
<A NAME="GiveOrthoSnp">
343
<A NAME ="DOC.296.29">
344
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual <!1><A HREF="Point.html">Point</A> GiveOrthoSnp(<!1><A HREF="Point.html">Point</A> to) const </B></TT>
345
<DD> Calc the intersection of an orthogonal line with shape boundary.
347
<A NAME="SetHandles">
348
<A NAME ="DOC.296.30">
349
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetHandles(int n)</B></TT>
350
<DD> set n handle rectangles.
352
<A NAME="HitHandles">
353
<A NAME ="DOC.296.31">
354
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual int HitHandles(int x, int y)</B></TT>
355
<DD> Return (x,y) handle hit (-1 if not, 0 when shape is line).
357
<A NAME="ContainsPt">
358
<A NAME ="DOC.296.32">
359
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool ContainsPt(int x, int y)</B></TT>
360
<DD> returns whether (x,y) is geometrically in the shape.
362
<A NAME="GetPosition">
363
<A NAME ="DOC.296.33">
364
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> const <!1><A HREF="Point.html">Point</A>* GetPosition() const </B></TT>
366
<A NAME="GetTopLeft">
367
<A NAME ="DOC.296.34">
368
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> const <!1><A HREF="Point.html">Point</A>* GetTopLeft() const </B></TT>
370
<A NAME="IsSelected">
371
<A NAME ="DOC.296.35">
372
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool IsSelected() const </B></TT>
375
<A NAME ="DOC.296.36">
376
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool IsVisible() const </B></TT>
378
<A NAME="IsDuplicate">
379
<A NAME ="DOC.296.37">
380
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool IsDuplicate() const </B></TT>
383
<A NAME ="DOC.296.38">
384
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> int GetWidth() const </B></TT>
387
<A NAME ="DOC.296.39">
388
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> int GetHeight() const </B></TT>
390
<A NAME="MIN_HEIGHT">
391
<A NAME ="DOC.296.40">
392
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> static const int MIN_HEIGHT</B></TT>
393
<DD> minimal height of a shape.
396
<A NAME ="DOC.296.41">
397
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> static const int MIN_WIDTH</B></TT>
398
<DD> minimal width of a shape.
400
<A NAME="DrawDuplicate">
401
<A NAME ="DOC.296.42">
402
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void DrawDuplicate()</B></TT>
403
<DD> draw duplication indicator (asterisk).
405
<A NAME="UndrawDuplicate">
406
<A NAME ="DOC.296.43">
407
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void UndrawDuplicate()</B></TT>
409
<A NAME="SetDuplicate">
410
<A NAME ="DOC.296.44">
411
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetDuplicate(bool b)</B></TT>
413
<A NAME="UpdateDuplicate">
414
<A NAME ="DOC.296.45">
415
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void UpdateDuplicate(bool b)</B></TT>
416
<DD> set whether shape is a duplicate shape.
419
<A NAME ="DOC.296.46">
420
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool IsLine() const </B></TT>
422
<A NAME="GetLeftMost">
423
<A NAME ="DOC.296.47">
424
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual int GetLeftMost() const </B></TT>
425
<DD> smallest x-coordinate in shape.
427
<A NAME="GetTopMost">
428
<A NAME ="DOC.296.48">
429
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual int GetTopMost() const </B></TT>
430
<DD> smallest y-coordinate in shape.
432
<A NAME="GetRightMost">
433
<A NAME ="DOC.296.49">
434
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual int GetRightMost() const </B></TT>
435
<DD> largest x-coordinate in shape.
437
<A NAME="GetBottomMost">
438
<A NAME ="DOC.296.50">
439
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual int GetBottomMost() const </B></TT>
440
<DD> largest y-coordinate in shape.
442
<A NAME="WriteMembers">
443
<A NAME ="DOC.296.51">
444
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void WriteMembers(<!1><A HREF="OutputFile.html">OutputFile</A> *ofile)</B></TT>
445
<DD> write members of shape to file.
447
<A NAME="ReadMembers">
448
<A NAME ="DOC.296.52">
449
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool ReadMembers(<!1><A HREF="InputFile.html">InputFile</A> *f, double format)</B></TT>
450
<DD> read and parse shape members from file ofile.
452
<A NAME="SetAssocSubject">
453
<A NAME ="DOC.296.53">
454
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool SetAssocSubject(<!1><A HREF="AssocList.html">AssocList</A> *)</B></TT>
455
<DD> update subject reference from assocList.
457
<A NAME="SetAssocView">
458
<A NAME ="DOC.296.54">
459
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool SetAssocView(<!1><A HREF="AssocList.html">AssocList</A> *)</B></TT>
460
<DD> update view reference from assocList.
462
<A NAME="CheckReferences">
463
<A NAME ="DOC.296.55">
464
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> bool CheckReferences()</B></TT>
465
<DD> Check if subject exists as graph element and that view exists.
467
<A NAME="SetTextShape">
468
<A NAME ="DOC.296.56">
469
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetTextShape()</B></TT>
470
<DD> update the strings of text shapes with the subject strings.
472
<A NAME="ChooseTextShape">
473
<A NAME ="DOC.296.57">
474
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual <!1><A HREF="TextShape.html">TextShape</A>* ChooseTextShape(int, int)</B></TT>
475
<DD> return a text shape near (x,y).
477
<A NAME="HitTextShape">
478
<A NAME ="DOC.296.58">
479
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual <!1><A HREF="TextShape.html">TextShape</A>* HitTextShape(int, int)</B></TT>
480
<DD> return the text shape at (x,y).
482
<A NAME="InTextArea">
483
<A NAME ="DOC.296.59">
484
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool InTextArea(int x, int y)</B></TT>
485
<DD> Returns if (x,y) is in text-area.
487
<A NAME="HasNameString">
488
<A NAME ="DOC.296.60">
489
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool HasNameString(const <!1><A HREF="string.html">string</A> *, bool, bool) const </B></TT>
490
<DD> true if shape's name text shape contains 's'.
493
<A NAME ="DOC.296.61">
494
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool HasString(const <!1><A HREF="string.html">string</A> *, bool, bool) const </B></TT>
495
<DD> true if some of shape's text shapes contains 's'.
498
<A NAME ="DOC.296.62">
499
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool HasString(const <!1><A HREF="string.html">string</A> *, bool, bool, <!1><A HREF="List.html">List</A><<!1><A HREF="TextShape.html">TextShape</A> *> *)</B></TT>
500
<DD> put all text shapes containing 's' in the list l.
502
<A NAME="HasTextShape">
503
<A NAME ="DOC.296.63">
504
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual bool HasTextShape(<!1><A HREF="TextShape.html">TextShape</A> *t) const </B></TT>
505
<DD> return if it has t as one of the text shapes.
508
<A NAME ="DOC.296.64">
509
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void MoveRaw(const <!1><A HREF="Point.html">Point</A> *delta)</B></TT>
510
<DD> move the shape over exact delta, without snap.
512
<A NAME="HANDLE_WIDTH">
513
<A NAME ="DOC.296.65">
514
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> static const int HANDLE_WIDTH</B></TT>
515
<DD> size of selection handle.
517
<A NAME="GetGrafport">
518
<A NAME ="DOC.296.66">
519
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> <!1><A HREF="Grafport.html">Grafport</A>* GetGrafport() const </B></TT>
521
<A NAME="SetDrawAttributes">
522
<A NAME ="DOC.296.67">
523
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetDrawAttributes()</B></TT>
524
<DD> set attributes of grafport before drawing.
526
<A NAME="SetOutlineAttributes">
527
<A NAME ="DOC.296.68">
528
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetOutlineAttributes()</B></TT>
529
<DD> set attributes of grafport for drawing outlines.
532
<A NAME ="DOC.296.69">
533
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetSize(int w, int h)</B></TT>
534
<DD> set the size of the shape (with a minimum).
536
<A NAME="SetPosition">
537
<A NAME ="DOC.296.70">
538
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetPosition(const <!1><A HREF="Point.html">Point</A> *<!2><A HREF="Shape.html#DOC.296.90">position</A>, bool snap=True)</B></TT>
539
<DD> set the position (takes into account the grid when snap=True).
541
<A NAME="SnapTopleft">
542
<A NAME ="DOC.296.71">
543
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SnapTopleft()</B></TT>
544
<DD> align the shape to the grid (by its topleft).
546
<A NAME="SnapPosition">
547
<A NAME ="DOC.296.72">
548
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SnapPosition()</B></TT>
549
<DD> align the shape to the grid (by its center).
552
<A NAME ="DOC.296.73">
553
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetWidth(int w)</B></TT>
556
<A NAME ="DOC.296.74">
557
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetHeight(int h)</B></TT>
559
<A NAME="SetNrHandles">
560
<A NAME ="DOC.296.75">
561
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetNrHandles(int n)</B></TT>
564
<A NAME ="DOC.296.76">
565
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> <!1><A HREF="DiagramViewer.html">DiagramViewer</A>* GetViewer() const </B></TT>
567
<A NAME="PositiveCoord">
568
<A NAME ="DOC.296.77">
569
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void PositiveCoord(const <!1><A HREF="Point.html">Point</A>*)</B></TT>
570
<DD> change position so that shape has only positive coordinates.
572
<A NAME="MIN_HANDLES">
573
<A NAME ="DOC.296.78">
574
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> static const int MIN_HANDLES</B></TT>
575
<DD> minimal nr. of handles.
577
<A NAME="DrawSelect">
578
<A NAME ="DOC.296.79">
579
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void DrawSelect()</B></TT>
580
<DD> Draw the handles if object is (first) selected.
582
<A NAME="DrawGraySelect">
583
<A NAME ="DOC.296.80">
584
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void DrawGraySelect()</B></TT>
585
<DD> Draw grey handles if the object is selected.
587
<A NAME="UndrawSelect">
588
<A NAME ="DOC.296.81">
589
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UndrawSelect()</B></TT>
591
<A NAME="UndrawGraySelect">
592
<A NAME ="DOC.296.82">
593
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void UndrawGraySelect()</B></TT>
595
<A NAME="SetTopLeft">
596
<A NAME ="DOC.296.83">
597
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void SetTopLeft(const <!1><A HREF="Point.html">Point</A> *topLeft)</B></TT>
598
<DD> set the top-left and position (take into account width and height).
600
<A NAME="SetPositionHandles">
601
<A NAME ="DOC.296.84">
602
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> virtual void SetPositionHandles()</B></TT>
603
<DD> set all handle rectangles.
605
<A NAME="ForcePosition">
606
<A NAME ="DOC.296.85">
607
<DT><IMG BORDER=0 SRC=icon2.gif><TT><B> void ForcePosition(const <!1><A HREF="Point.html">Point</A> *<!2><A HREF="Shape.html#DOC.296.90">position</A>)</B></TT>
610
<DL><DT><B>Direct child classes:
611
</B><DD><A HREF="TextShape.html"> TextShape </A><br>
612
<A HREF="GShape.html"> GShape </A><br>
614
<DL></DL><P><I><A HREF="aindex.html"> alphabetic index</A></I> <I><A HREF="HIER.html"> hierarchy of classes</A></I><P><hr>
615
<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
616
<P Align=Center><I>this page has been generated automatically by doc++</I>
617
<P Align=Center><I>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte Zöckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de</a></I>