- Main Page
- Modules
- Classes

- Class List
- Class Hierarchy
- Class Members

# IpeGroup Class Reference
[Ipe Objects]

The group object. More...

Inherits IpeFillable.

List of all members.

## Public Types

- typedef List::const_iterator const_iterator

## Public Member Functions

- IpeGroup ()
- IpeGroup (IpeRepository *rep, const IpeXmlAttributes &attr)
- IpeGroup (const IpeGroup &rhs)
- virtual ~IpeGroup ()
- IpeGroup & operator= (const IpeGroup &rhs)
- virtual IpeObject * Clone () const
- virtual IpeGroup * AsGroup ()
- virtual TPinned pinned () const
- virtual void Accept (IpeVisitor &visitor) const
- virtual void SaveAsXml (IpePainter &painter, IpeStream &stream, IpeString layer) const
- virtual void Draw (IpePainter &painter) const
- virtual void AddToBBox (IpeRect &box, const IpeMatrix &m) const
- virtual double Distance (const IpeVector &v, const IpeMatrix &m, double bound) const
- virtual void SnapVtx (const IpeVector &mouse, const IpeMatrix &m, IpeVector &pos, double &bound) const
- virtual void SnapBnd (const IpeVector &mouse, const IpeMatrix &m, IpeVector &pos, double &bound) const
- int size () const
- const_iterator begin () const
- const_iterator end () const
- void push_back (const IpeObject *)
- void SaveComponentsAsXml (IpePainter &painter, IpeStream &stream) const
- virtual void CheckStyle (const IpeStyleSheet *sheet, IpeAttributeSeq &seq) const
- IpeAttribute TextSize () const
- IpeAttribute MarkSize () const
- int MarkShape () const
- bool HasTexts () const
- bool HasMarks () const
- void SetTextSize (IpeAttribute size)
- void SetMarkSize (IpeAttribute size)
- void SetMarkShape (int shape)

## Detailed Description

The group object.

Ipe objects can be grouped together, and the resulting composite can be used like any Ipe object.

This is an application of the "Composite" pattern.

## Constructor & Destructor Documentation

IpeGroup::IpeGroup | ( |  | ) | `[explicit]`

Create empty group (objects added later).

IpeGroup::IpeGroup | ( | IpeRepository * | rep,
|  | const IpeXmlAttributes & | attr |
| ) |  |  | `[explicit]`

Create empty group with these attributes (objects added later).

IpeGroup::IpeGroup | ( | const IpeGroup & | rhs | ) |

Copy constructor. Constant time --- components are not copied!

IpeGroup::~IpeGroup | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

IpeGroup & IpeGroup::operator= | ( | const IpeGroup & | rhs | ) |

Assignment operator (constant-time).

IpeObject * IpeGroup::Clone | ( |  | ) | const`[virtual]`

Clone a group object (constant-time).

Implements IpeObject.

IpeGroup * IpeGroup::AsGroup | ( |  | ) | `[virtual]`

Return pointer to this object.

Reimplemented from IpeObject.

IpeObject::TPinned IpeGroup::pinned | ( |  | ) | const`[virtual]`

Return pinning mode of the object.

Reimplemented from IpeObject.

void IpeGroup::Accept | ( | IpeVisitor & | visitor | ) | const`[virtual]`

Call VisitGroup of visitor.

Implements IpeObject.

void IpeGroup::SaveAsXml | ( | IpePainter & | painter,
|  | IpeStream & | stream,
|  | IpeString | layer |
| ) |  |  | const`[virtual]`

Save the object in XML format.

Implements IpeObject.

void IpeGroup::Draw | ( | IpePainter & | painter | ) | const`[virtual]`

Draw the object.

Implements IpeObject.

void IpeGroup::AddToBBox | ( | IpeRect & | box,
|  | const IpeMatrix & | m |
| ) |  |  | const`[virtual]`

Extend box to include the object transformed by m.

For Ipe objects in a page, don't call this directly. The IpePgObject caches the bounding box, so it is far more efficient to call IpePgObject::BBox.

If called with an empty box, the result of this function is a tight bounding box for the object, with a little leeway in case the boundary is determined by a spline (it has to be approximated to perform this operation).

Implements IpeObject.

double IpeGroup::Distance | ( | const IpeVector & | v,
|  | const IpeMatrix & | m,
|  | double | bound |
| ) |  |  | const`[virtual]`

Return distance of transformed object to point v. If larger than bound, can just return bound.

Implements IpeObject.

void IpeGroup::SnapVtx | ( | const IpeVector & | mouse,
|  | const IpeMatrix & | m,
|  | IpeVector & | pos,
|  | double & | bound |
| ) |  |  | const`[virtual]`

Compute possible vertex snapping position for transformed object.

Looks only for positions closer than bound. If successful, modify pos and bound.

Implements IpeObject.

void IpeGroup::SnapBnd | ( | const IpeVector & | mouse,
|  | const IpeMatrix & | m,
|  | IpeVector & | pos,
|  | double & | bound |
| ) |  |  | const`[virtual]`

Compute boundary snapping position for transformed object.

Looks only for positions closer than bound. If successful, modify pos and bound. The default implementation does nothing.

Reimplemented from IpeObject.

int IpeGroup::size | ( |  | ) | const`[inline]`

Return number of component objects.

const_iterator IpeGroup::begin | ( |  | ) | const`[inline]`

Return iterator for first object.

const_iterator IpeGroup::end | ( |  | ) | const`[inline]`

Return iterator for end of sequence.

void IpeGroup::push_back | ( | const IpeObject * | obj | ) |

Add an object.

This will panic if the object shares its implementation! The method is only useful right after construction of the group.

void IpeGroup::SaveComponentsAsXml | ( | IpePainter & | painter,
|  | IpeStream & | stream |
| ) |  |  | const

Save all the components, one by one, in XML format.

void IpeGroup::CheckStyle | ( | const IpeStyleSheet * | sheet,
|  | IpeAttributeSeq & | seq |
| ) |  |  | const`[virtual]`

Check all symbolic attributes.

Reimplemented from IpeFillable.

IpeAttribute IpeGroup::TextSize | ( |  | ) | const`[inline]`

Return font size of text objects in the group.

IpeAttribute IpeGroup::MarkSize | ( |  | ) | const`[inline]`

Return size of mark objects in the group.

int IpeGroup::MarkShape | ( |  | ) | const`[inline]`

Return shape of mark objects in the group.

bool IpeGroup::HasTexts | ( |  | ) | const`[inline]`

Does this group contain any text objects?

bool IpeGroup::HasMarks | ( |  | ) | const`[inline]`

Does this group contain any mark objects?

void IpeGroup::SetTextSize | ( | IpeAttribute | size | ) |

Set font size of text objects in the group.

This is a no op if there are no text objects in the group. It invalidates (and destroys) the XForms stored with all text objects in the group.

void IpeGroup::SetMarkSize | ( | IpeAttribute | size | ) |

Set size of mark objects in the group.

This is a no op if there are no mark objects in the group.

void IpeGroup::SetMarkShape | ( | int | shape | ) |

Set shape of mark objects in the group.

This is a no op if there are no mark objects in the group.

The documentation for this class was generated from the following files:

- ipegroup.h
- ipegroup.cpp