# IpeMark Class Reference
[Ipe Objects]

The mark object. More...

Inherits IpeFillable.

List of all members.

## Public Types

- enum {
  ECircle = 1, EDisc, EBox, ESquare,
  ECross
  }

## Public Member Functions

- IpeMark (const IpeAllAttributes &attr, const IpeVector &pos)
- IpeMark (IpeRepository *rep, const IpeXmlAttributes &attr, IpeString data)
- IpeMark (const IpeMark &rhs)
- virtual IpeObject * Clone () const
- virtual IpeMark * AsMark ()
- 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 CheckStyle (const IpeStyleSheet *sheet, IpeAttributeSeq &seq) const
- IpeVector Position () const
- int Shape () const
- IpeAttribute Size () const
- void SetShape (int shape)
- void SetSize (IpeAttribute size)

## Detailed Description

The mark object.

A mark is a little marker for a "point". Several shapes are available: disks, circles, squares, crosses, etc.

## Constructor & Destructor Documentation

IpeMark::IpeMark | ( | const IpeAllAttributes & | attr,
|  | const IpeVector & | pos |
| ) |  |  | `[explicit]`

Create at position.

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

Create from XML stream.

IpeMark::IpeMark | ( | const IpeMark & | rhs | ) |

Copy constructor.

## Member Function Documentation

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

Clone object.

Implements IpeObject.

IpeMark * IpeMark::AsMark | ( |  | ) | `[virtual]`

Return pointer to this object.

Reimplemented from IpeObject.

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

Call VisitMark of visitor.

Implements IpeObject.

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

Save the object in XML format.

Implements IpeObject.

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

Draw marker.

Implements IpeObject.

void IpeMark::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 IpeMark::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 IpeMark::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 IpeMark::CheckStyle | ( | const IpeStyleSheet * | sheet,
|  | IpeAttributeSeq & | seq |
| ) |  |  | const`[virtual]`

Check all symbolic attributes.

Reimplemented from IpeFillable.

IpeVector IpeMark::Position | ( |  | ) | const`[inline]`

Return mark position.

int IpeMark::Shape | ( |  | ) | const`[inline]`

Return mark type.

IpeAttribute IpeMark::Size | ( |  | ) | const`[inline]`

Return mark size.

void IpeMark::SetShape | ( | int | shape | ) |

Set shape of mark.

void IpeMark::SetSize | ( | IpeAttribute | size | ) |

Set size of mark.

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

- ipemark.h
- ipemark.cpp