Ipelib
Classes | Public Types | Public Member Functions | List of all members
ipe::Group Class Reference

#include <ipegroup.h>

Inherits ipe::Object.

Classes

struct  Imp

Public Types

typedef List::const_iterator const_iterator
- Public Types inherited from ipe::Object
enum  Type {
  EGroup, EPath, EText, EImage,
  EReference
}

Public Member Functions

 Group ()
 Group (const Group &rhs)
virtual ~Group ()
 Group (const XmlAttributes &attr)
Groupoperator= (const Group &rhs)
virtual Objectclone () const
virtual GroupasGroup ()
virtual Type type () const
virtual TPinned pinned () const
virtual void accept (Visitor &visitor) const
virtual void saveAsXml (Stream &stream, String layer) const
virtual void draw (Painter &painter) const
virtual void drawSimple (Painter &painter) const
virtual void addToBBox (Rect &box, const Matrix &m, bool cp) const
virtual double distance (const Vector &v, const Matrix &m, double bound) const
virtual void snapVtx (const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
virtual void snapBnd (const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
const Shapeclip () const
void setClip (const Shape &clip)
int count () const
const Objectobject (int i) const
const_iterator begin () const
const_iterator end () const
void push_back (Object *)
void saveComponentsAsXml (Stream &stream) const
virtual void checkStyle (const Cascade *sheet, AttributeSeq &seq) const
virtual bool setAttribute (Property prop, Attribute value, Attribute stroke, Attribute fill)
- Public Member Functions inherited from ipe::Object
virtual ~Object ()=0
virtual TextasText ()
virtual PathasPath ()
virtual ImageasImage ()
virtual ReferenceasReference ()
void setPinned (TPinned pin)
TTransformations transformations () const
void setTransformations (TTransformations trans)
void setMatrix (const Matrix &matrix)
const Matrixmatrix () const
virtual Attribute getAttribute (Property prop)

Additional Inherited Members

- Protected Member Functions inherited from ipe::Object
 Object ()
 Object (const AllAttributes &attr)
 Object (const Object &rhs)
 Object (const XmlAttributes &attr)
void saveAttributesAsXml (Stream &stream, String layer) const
- Static Protected Member Functions inherited from ipe::Object
static void checkSymbol (Kind kind, Attribute attr, const Cascade *sheet, AttributeSeq &seq)
- Protected Attributes inherited from ipe::Object
Matrix iMatrix
TPinned iPinned: 8
TTransformations iTransformations: 8

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.

Member Typedef Documentation

typedef List::const_iterator ipe::Group::const_iterator

Constructor & Destructor Documentation

Group::Group ( )
explicit

Create empty group (objects can be added later).

Group::Group ( const Group rhs)

Copy constructor. Constant time — components are not copied!

Group::~Group ( )
virtual

Destructor.

Group::Group ( const XmlAttributes attr)
explicit

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

Member Function Documentation

Group & Group::operator= ( const Group rhs)

Assignment operator (constant-time).

Object * Group::clone ( ) const
virtual

Clone a group object (constant-time).

Implements ipe::Object.

Group * Group::asGroup ( )
virtual

Return pointer to this object.

Reimplemented from ipe::Object.

Object::Type Group::type ( ) const
virtual

Implements ipe::Object.

TPinned Group::pinned ( ) const
virtual

Return total pinning status of group and its elements.

Reimplemented from ipe::Object.

void Group::accept ( Visitor visitor) const
virtual

Call visitGroup of visitor.

Implements ipe::Object.

void Group::saveAsXml ( Stream stream,
String  layer 
) const
virtual

Save the object in XML format.

Implements ipe::Object.

void Group::draw ( Painter painter) const
virtual

Draw the object.

Implements ipe::Object.

void Group::drawSimple ( Painter painter) const
virtual

Draw simple version for selecting and transforming.

Implements ipe::Object.

void Group::addToBBox ( Rect box,
const Matrix m,
bool  cp 
) const
virtual

Extend box to include the object transformed by m.

For objects in a page, don't call this directly. The Page caches the bounding box of each object, so it is far more efficient to call Page::bbox.

Control points that lie outside the visual object are included if cp is true.

If called with an empty box and cp == false, 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 ipe::Object.

double Group::distance ( const Vector v,
const Matrix m,
double  bound 
) const
virtual

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

Implements ipe::Object.

void Group::snapVtx ( const Vector mouse,
const Matrix m,
Vector 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 ipe::Object.

void Group::snapBnd ( const Vector mouse,
const Matrix m,
Vector 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 ipe::Object.

const Shape& ipe::Group::clip ( ) const
inline
void Group::setClip ( const Shape clip)

Set clip path for this group.

Any previously set clip path is deleted.

int ipe::Group::count ( ) const
inline

Return number of component objects.

const Object* ipe::Group::object ( int  i) const
inline

Return object at index i.

const_iterator ipe::Group::begin ( ) const
inline

Return iterator for first object.

const_iterator ipe::Group::end ( ) const
inline

Return iterator for end of sequence.

void Group::push_back ( Object obj)

Add an object.

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

void Group::saveComponentsAsXml ( Stream stream) const

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

void Group::checkStyle ( const Cascade sheet,
AttributeSeq seq 
) const
virtual

Check all symbolic attributes.

Reimplemented from ipe::Object.

bool Group::setAttribute ( Property  prop,
Attribute  value,
Attribute  stroke,
Attribute  fill 
)
virtual

Set attribute on all children.

Reimplemented from ipe::Object.


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