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)
Group & operator= (const Group &rhs)
virtual Object * clone () const
virtual Group * asGroup ()
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 Shape & clip () const
void setClip (const Shape &clip)
int count () const
const Object * object (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 Text * asText ()
virtual Path * asPath ()
virtual Image * asImage ()
virtual Reference * asReference ()
void setPinned (TPinned pin)
TTransformations transformations () const
void setTransformations (TTransformations trans)
void setMatrix (const Matrix &matrix)
const Matrix & matrix () 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: