ipe::Image Class Reference
Ipe Objects

`#include <ipeimage.h>`

Inherits ipe::Object.

## Public Member Functions

| Image (const Rect &rect, Bitmap bitmap)
| Image (const XmlAttributes &attr, String data)
| Image (const XmlAttributes &attr, Bitmap bitmap)
virtual Object * | clone () const
virtual Image * | asImage ()
virtual Type | type () const
virtual void | saveAsXml (Stream &stream, String layer) const
virtual void | draw (Painter &painter) const
virtual void | drawSimple (Painter &painter) const
virtual void | accept (Visitor &visitor) const
virtual double | distance (const Vector &v, const Matrix &m, double bound) const
virtual void | addToBBox (Rect &box, const Matrix &m, bool) const
virtual void | snapCtl (const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Rect | rect () const
Bitmap | bitmap () const
Public Member Functions inherited from ipe::Object
virtual | ~Object ()=0
virtual Group * | asGroup ()
virtual const Group * | asGroup () const
virtual Text * | asText ()
virtual Path * | asPath ()
virtual Reference * | asReference ()
virtual TPinned | pinned () const
void | setPinned (TPinned pin)
TTransformations | transformations () const
void | setTransformations (TTransformations trans)
void | setMatrix (const Matrix &matrix)
const Matrix & | matrix () const
virtual bool | setAttribute (Property prop, Attribute value)
virtual Attribute | getAttribute (Property prop) const noexcept
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
virtual void | checkStyle (const Cascade *sheet, AttributeSeq &seq) const

## Additional Inherited Members

Public Types inherited from ipe::Object
enum | Type { EGroup, EPath, EText, EImage, EReference }
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 image object.

## Constructor & Destructor Documentation

## Image() [1/3]

Image::Image | ( | const Rect & | rect,
|  | Bitmap | bitmap
| ) |  |

explicit

Create a new image.

Referenced by clone().

## Image() [2/3]

Image::Image | ( | const XmlAttributes & | attr,
|  | String | data
| ) |  |

explicit

Create from XML stream.

## Image() [3/3]

Image::Image | ( | const XmlAttributes & | attr,
|  | Bitmap | bitmap
| ) |  |

explicit

Create from XML stream with given bitmap.

References ipe::Rect::addPoint(), ipe::Vector::x, and ipe::Vector::y.

## Member Function Documentation

## clone()

Object * Image::clone | ( |  | ) | const

virtual

Clone object.

Implements ipe::Object.

References Image().

## asImage()

Image * Image::asImage | ( |  | ) |

virtual

Return pointer to this object.

Reimplemented from ipe::Object.

## type()

Object::Type Image::type | ( |  | ) | const

virtual

Implements ipe::Object.

References ipe::Object::EImage.

## saveAsXml()

void Image::saveAsXml | ( | Stream & | stream,
|  | String | layer
| ) |  | const

virtual

Save image in XML stream.

Implements ipe::Object.

References ipe::Bitmap::objNum(), rect(), and ipe::Object::saveAttributesAsXml().

## draw()

void Image::draw | ( | Painter & | painter | ) | const

virtual

Draw image.

Implements ipe::Object.

References ipe::Rect::bottomLeft(), ipe::Painter::drawBitmap(), ipe::Rect::height(), ipe::Object::matrix(), ipe::Painter::pop(), ipe::Painter::popMatrix(), ipe::Painter::push(), ipe::Painter::pushMatrix(), ipe::Painter::transform(), ipe::Object::transformations(), ipe::Painter::untransform(), ipe::Rect::width(), ipe::Vector::x, and ipe::Vector::y.

## drawSimple()

void Image::drawSimple | ( | Painter & | painter | ) | const

virtual

Draw simple version for selecting and transforming.

Implements ipe::Object.

References ipe::Painter::drawPath(), ipe::EStrokedOnly, ipe::Object::matrix(), ipe::Painter::newPath(), ipe::Painter::popMatrix(), ipe::Painter::pushMatrix(), ipe::Painter::rect(), ipe::Painter::transform(), ipe::Object::transformations(), and ipe::Painter::untransform().

## accept()

void Image::accept | ( | Visitor & | visitor | ) | const

virtual

Call VisitImage of visitor.

Implements ipe::Object.

References ipe::Visitor::visitImage().

## distance()

double Image::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.

References ipe::Rect::addPoint(), ipe::Rect::bottomLeft(), ipe::Rect::bottomRight(), ipe::Rect::certainClearance(), ipe::Object::matrix(), ipe::Rect::topLeft(), and ipe::Rect::topRight().

## addToBBox()

void Image::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.

References ipe::Rect::addPoint(), ipe::Rect::bottomLeft(), ipe::Rect::bottomRight(), ipe::Object::matrix(), ipe::Rect::topLeft(), and ipe::Rect::topRight().

## snapCtl()

void Image::snapCtl | ( | const Vector & | mouse,
|  | const Matrix & | m,
|  | Vector & | pos,
|  | double & | bound
| ) |  | const

virtual

Compute control point 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.

References ipe::Rect::bottomLeft(), ipe::Rect::bottomRight(), ipe::Object::matrix(), ipe::Rect::topLeft(), and ipe::Rect::topRight().

## rect()

Rect ipe::Image::rect | ( |  | ) | const

inline

Return the rectangle occupied by the image on the paper.

The transformation matrix is applied to this, of course.

Referenced by saveAsXml().

## bitmap()

Bitmap ipe::Image::bitmap | ( |  | ) | const

inline

Return Bitmap of the image.

Referenced by ipe::BitmapFinder::visitImage().

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

- ipeimage.h
- ipeimage.cpp