Inherits IpeFillable.
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.
| 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.
| IpeObject * IpeGroup::Clone | ( | ) | const [virtual] |
| IpeGroup * IpeGroup::AsGroup | ( | ) | [virtual] |
| IpeObject::TPinned IpeGroup::pinned | ( | ) | const [virtual] |
| void IpeGroup::Accept | ( | IpeVisitor & | visitor | ) | const [virtual] |
| void IpeGroup::SaveAsXml | ( | IpePainter & | painter, | |
| IpeStream & | stream, | |||
| IpeString | layer | |||
| ) | const [virtual] |
| void IpeGroup::Draw | ( | IpePainter & | painter | ) | 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] |
| 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.