## class Shape : public Thing

> (abstract) shape class, superclass of all possible shapes (graphics + text).

## Inheritance:

### Public Fields

  static const int | MIN_HEIGHT minimal height of a shape.
  static const int | MIN_WIDTH minimal width of a shape.
  static const int | HANDLE_WIDTH size of selection handle.

### Public Methods

  | Shape (ShapeView *s, Grafport *g) creates a shape at position (0,0) and size (0,0).
  bool | IsShape () const
  virtual bool | IsTextShape () const
  virtual Shape* | Clone ()
  virtual void | Draw () Draws the shape: shape itself and its text and selection handles.
  virtual void | Undraw () Erases the shape: by redrawing it in XOR mode.
  virtual void | UpdatePosition (const Point *position, bool snap=True) update position and redraw.
  virtual void | UpdateSize (int w, int h) update size and redraw.
  virtual void | UpdateMove (const Point *delta) update movement and redraw.
  virtual void | UpdateSelect (bool s) update selection handles and redraw.
  virtual void | UpdateFirstSelect (bool s) update first selection handles and redraw.
  virtual void | UpdateColor (string *color) update color and redraw.
  virtual void | SetSelect (bool s)
  virtual void | SetFirstSelect (bool s)
  bool | IsFirstSelected () const
  void | SetVisible (bool s)
  void | SetSubject (Subject *s)
  virtual void | SetView (ShapeView *v)
  Subject* | GetSubject () const
  ShapeView* | GetView () const
  virtual void | SetGrafport (Grafport *g)
  void | SetColor (const string *c)
  const string* | GetColor () const
  virtual void | Move (const Point *delta) move position by delta.
  virtual void | AdjustSize () update size to make the shape fit the text shape strings.
  virtual void | DrawOutLine (const Point *center) Draw outline of the shape (when it is dragged).
  virtual Point | GiveSnp (Point) const intersection of boundary and line from given point to shape center.
  virtual Point | GiveSnp (Point, int, int, int &) As GiveSnp but takes into account distribution of multiple lines.
  virtual Point | GiveOrthoSnp (Point to) const Calc the intersection of an orthogonal line with shape boundary.
  void | SetHandles (int n) set n handle rectangles.
  virtual int | HitHandles (int x, int y) Return (x,y) handle hit (-1 if not, 0 when shape is line).
  virtual bool | ContainsPt (int x, int y) returns whether (x,y) is geometrically in the shape.
  const Point* | GetPosition () const
  const Point* | GetTopLeft () const
  bool | IsSelected () const
  bool | IsVisible () const
  bool | IsDuplicate () const
  int | GetWidth () const
  int | GetHeight () const
  virtual void | DrawDuplicate () draw duplication indicator (asterisk).
  void | UndrawDuplicate ()
  void | SetDuplicate (bool b)
  void | UpdateDuplicate (bool b) set whether shape is a duplicate shape.
  virtual bool | IsLine () const
  virtual int | GetLeftMost () const smallest x-coordinate in shape.
  virtual int | GetTopMost () const smallest y-coordinate in shape.
  virtual int | GetRightMost () const largest x-coordinate in shape.
  virtual int | GetBottomMost () const largest y-coordinate in shape.
  void | WriteMembers (OutputFile *ofile) write members of shape to file.
  bool | ReadMembers (InputFile *f, double format) read and parse shape members from file ofile.
  virtual bool | SetAssocSubject (AssocList *) update subject reference from assocList.
  bool | SetAssocView (AssocList *) update view reference from assocList.
  bool | CheckReferences () Check if subject exists as graph element and that view exists.
  virtual void | SetTextShape () update the strings of text shapes with the subject strings.
  virtual TextShape* | ChooseTextShape (int, int) return a text shape near (x,y).
  virtual TextShape* | HitTextShape (int, int) return the text shape at (x,y).
  virtual bool | InTextArea (int x, int y) Returns if (x,y) is in text-area.
  virtual bool | HasNameString (const string *, bool, bool) const true if shape's name text shape contains 's'.
  virtual bool | HasString (const string *, bool, bool) const true if some of shape's text shapes contains 's'.
  virtual bool | HasString (const string *, bool, bool, List<TextShape *> *) put all text shapes containing 's' in the list l.
  virtual bool | HasTextShape (TextShape *t) const return if it has t as one of the text shapes.
  virtual void | MoveRaw (const Point *delta) move the shape over exact delta, without snap.

### Protected Fields

  static const int | MIN_HANDLES minimal nr. of handles.

### Protected Methods

  Grafport* | GetGrafport () const
  virtual void | SetDrawAttributes () set attributes of grafport before drawing.
  void | SetOutlineAttributes () set attributes of grafport for drawing outlines.
  virtual void | SetSize (int w, int h) set the size of the shape (with a minimum).
  virtual void | SetPosition (const Point *position, bool snap=True) set the position (takes into account the grid when snap=True).
  virtual void | SnapTopleft () align the shape to the grid (by its topleft).
  virtual void | SnapPosition () align the shape to the grid (by its center).
  void | SetWidth (int w)
  void | SetHeight (int h)
  void | SetNrHandles (int n)
  DiagramViewer* | GetViewer () const
  void | PositiveCoord (const Point*) change position so that shape has only positive coordinates.
  virtual void | DrawSelect () Draw the handles if object is (first) selected.
  virtual void | DrawGraySelect () Draw grey handles if the object is selected.
  virtual void | UndrawSelect ()
  virtual void | UndrawGraySelect ()
  void | SetTopLeft (const Point *topLeft) set the top-left and position (take into account width and height).
  virtual void | SetPositionHandles () set all handle rectangles.
  void | ForcePosition (const Point *position)

### Inherited from Thing:

### Public Classes

enum AssocType

### Public Methods

unsigned long GetId()
void SetId(unsigned long val)
virtual bool IsSubject() const
virtual bool IsView() const
virtual int GetClassType() const
void Write(OutputFile *ofile)
virtual bool SetReferences(AssocList *)

## Documentation

> (abstract) shape class, superclass of all possible shapes (graphics + text).

`Shape(ShapeView *s, Grafport *g)`
  creates a shape at position (0,0) and size (0,0).

`bool IsShape() const`

`virtual bool IsTextShape() const`

`virtual Shape* Clone()`

`virtual void Draw()`
  Draws the shape: shape itself and its text and selection handles.

`virtual void Undraw()`
  Erases the shape: by redrawing it in XOR mode.

`virtual void UpdatePosition(const Point *position, bool snap=True)`
  update position and redraw.

`virtual void UpdateSize(int w, int h)`
  update size and redraw.

`virtual void UpdateMove(const Point *delta)`
  update movement and redraw.

`virtual void UpdateSelect(bool s)`
  update selection handles and redraw.

`virtual void UpdateFirstSelect(bool s)`
  update first selection handles and redraw.

`virtual void UpdateColor(string *color)`
  update color and redraw.

`virtual void SetSelect(bool s)`

`virtual void SetFirstSelect(bool s)`

`bool IsFirstSelected() const`

`void SetVisible(bool s)`

`void SetSubject(Subject *s)`

`virtual void SetView(ShapeView *v)`

`Subject* GetSubject() const`

`ShapeView* GetView() const`

`virtual void SetGrafport(Grafport *g)`

`void SetColor(const string *c)`

`const string* GetColor() const`

`virtual void Move(const Point *delta)`
  move position by delta.

`virtual void AdjustSize()`
  update size to make the shape fit the text shape strings.

`virtual void DrawOutLine(const Point *center)`
  Draw outline of the shape (when it is dragged).

`virtual Point GiveSnp(Point) const`
  intersection of boundary and line from given point to shape center.

`virtual Point GiveSnp(Point, int, int, int &)`
  As GiveSnp but takes into account distribution of multiple lines.

`virtual Point GiveOrthoSnp(Point to) const`
  Calc the intersection of an orthogonal line with shape boundary.

`void SetHandles(int n)`
  set n handle rectangles.

`virtual int HitHandles(int x, int y)`
  Return (x,y) handle hit (-1 if not, 0 when shape is line).

`virtual bool ContainsPt(int x, int y)`
  returns whether (x,y) is geometrically in the shape.

`const Point* GetPosition() const`

`const Point* GetTopLeft() const`

`bool IsSelected() const`

`bool IsVisible() const`

`bool IsDuplicate() const`

`int GetWidth() const`

`int GetHeight() const`

`static const int MIN_HEIGHT`
  minimal height of a shape.

`static const int MIN_WIDTH`
  minimal width of a shape.

`virtual void DrawDuplicate()`
  draw duplication indicator (asterisk).

`void UndrawDuplicate()`

`void SetDuplicate(bool b)`

`void UpdateDuplicate(bool b)`
  set whether shape is a duplicate shape.

`virtual bool IsLine() const`

`virtual int GetLeftMost() const`
  smallest x-coordinate in shape.

`virtual int GetTopMost() const`
  smallest y-coordinate in shape.

`virtual int GetRightMost() const`
  largest x-coordinate in shape.

`virtual int GetBottomMost() const`
  largest y-coordinate in shape.

`void WriteMembers(OutputFile *ofile)`
  write members of shape to file.

`bool ReadMembers(InputFile *f, double format)`
  read and parse shape members from file ofile.

`virtual bool SetAssocSubject(AssocList *)`
  update subject reference from assocList.

`bool SetAssocView(AssocList *)`
  update view reference from assocList.

`bool CheckReferences()`
  Check if subject exists as graph element and that view exists.

`virtual void SetTextShape()`
  update the strings of text shapes with the subject strings.

`virtual TextShape* ChooseTextShape(int, int)`
  return a text shape near (x,y).

`virtual TextShape* HitTextShape(int, int)`
  return the text shape at (x,y).

`virtual bool InTextArea(int x, int y)`
  Returns if (x,y) is in text-area.

`virtual bool HasNameString(const string *, bool, bool) const`
  true if shape's name text shape contains 's'.

`virtual bool HasString(const string *, bool, bool) const`
  true if some of shape's text shapes contains 's'.

`virtual bool HasString(const string *, bool, bool, List<TextShape *> *)`
  put all text shapes containing 's' in the list l.

`virtual bool HasTextShape(TextShape *t) const`
  return if it has t as one of the text shapes.

`virtual void MoveRaw(const Point *delta)`
  move the shape over exact delta, without snap.

`static const int HANDLE_WIDTH`
  size of selection handle.

`Grafport* GetGrafport() const`

`virtual void SetDrawAttributes()`
  set attributes of grafport before drawing.

`void SetOutlineAttributes()`
  set attributes of grafport for drawing outlines.

`virtual void SetSize(int w, int h)`
  set the size of the shape (with a minimum).

`virtual void SetPosition(const Point *position, bool snap=True)`
  set the position (takes into account the grid when snap=True).

`virtual void SnapTopleft()`
  align the shape to the grid (by its topleft).

`virtual void SnapPosition()`
  align the shape to the grid (by its center).

`void SetWidth(int w)`

`void SetHeight(int h)`

`void SetNrHandles(int n)`

`DiagramViewer* GetViewer() const`

`void PositiveCoord(const Point*)`
  change position so that shape has only positive coordinates.

`static const int MIN_HANDLES`
  minimal nr. of handles.

`virtual void DrawSelect()`
  Draw the handles if object is (first) selected.

`virtual void DrawGraySelect()`
  Draw grey handles if the object is selected.

`virtual void UndrawSelect()`

`virtual void UndrawGraySelect()`

`void SetTopLeft(const Point *topLeft)`
  set the top-left and position (take into account width and height).

`virtual void SetPositionHandles()`
  set all handle rectangles.

`void ForcePosition(const Point *position)`

Direct child classes:
  TextShape
  GShape

alphabetic index hierarchy of classes

this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de