Class to hold a region of interest in an image. More...
#include <ImageRegion.h>
Public Member Functions | |
ImageRegion () | |
Default constructor (has no region at all). | |
ImageRegion (const LCRegion &) | |
Construct from a region based on lattice coordinates. | |
ImageRegion (const LCSlicer &) | |
Construct from a slicer based on lattice coordinates. | |
ImageRegion (const WCRegion &) | |
Construct from a region based on world coordinates. | |
ImageRegion (LCRegion *) | |
Similar constructors as above, but using a pointer. | |
ImageRegion (LCSlicer *) | |
ImageRegion (WCRegion *) | |
ImageRegion (const ImageRegion &other) | |
Copy constructor (copy semantics). | |
virtual | ~ImageRegion () |
ImageRegion & | operator= (const ImageRegion &other) |
Assignment (copy semantics). | |
virtual ImageRegion * | clone () const |
Clone the object. | |
virtual Bool | operator== (const LattRegionHolder &other) const |
Comparison. | |
virtual Bool | isWCRegion () const |
Test if the underlying region is an WCRegion. | |
virtual const WCRegion * | asWCRegionPtr () const |
Get the region as a pointer to WCRegion. | |
const LCRegion & | asLCRegion () const |
Get the region as an LCSlicer or WCRegion. | |
const LCSlicer & | asLCSlicer () const |
const WCRegion & | asWCRegion () const |
LCRegion & | asMask () |
Get the region as a writable mask. | |
virtual LatticeRegion | toLatticeRegion (const CoordinateSystem &cSys, const IPosition &shape) const |
Convert to a LatticeRegion using the given coordinate system (with reference pixel) and shape. | |
LCRegion * | toLCRegion (const CoordinateSystem &cSys, const IPosition &shape) const |
Convert to an LCRegion using the given coordinate system (with reference pixel) and shape. | |
TableRecord | toRecord (const String &tableName) const |
Convert the (derived) object to a record. | |
virtual LattRegionHolder * | makeUnion (const LattRegionHolder &other) const |
Form a compound from this and the other region. | |
virtual LattRegionHolder * | makeIntersection (const LattRegionHolder &other) const |
virtual LattRegionHolder * | makeDifference (const LattRegionHolder &other) const |
virtual LattRegionHolder * | makeComplement () const |
Static Public Member Functions | |
static ImageRegion * | fromLatticeExpression (const String &latticeExpression) |
Create an ImageRegion from a lattice expression. | |
static ImageRegion * | fromRecord (LogIO *logger, const CoordinateSystem &coords, const IPosition &imShape, const Record ®ionRecord) |
Create an ImageRegion from a record. | |
static ImageRegion * | fromRecord (const TableRecord &, const String &tableName) |
Convert correct object from a record. | |
Private Attributes | |
WCRegion * | itsWC |
Class to hold a region of interest in an image.
Public interface
The only purpose of ImageRegion is to have a single object for the various kinds of regions. It can hold a LCRegion , LCSlicer , and WCRegion .
It was felt that making an abstract base class LatticeRegion for LCRegion and WCRegion would create undesirable dependencies of module Lattices on module Coordinates. E.g. it would be impossible to have a function toWCRegion. Therefore the container class ImageRegion is chosen.
Definition at line 86 of file ImageRegion.h.
casacore::ImageRegion::ImageRegion | ( | ) |
Default constructor (has no region at all).
casacore::ImageRegion::ImageRegion | ( | const LCRegion & | ) |
Construct from a region based on lattice coordinates.
casacore::ImageRegion::ImageRegion | ( | const LCSlicer & | ) |
Construct from a slicer based on lattice coordinates.
casacore::ImageRegion::ImageRegion | ( | const WCRegion & | ) |
Construct from a region based on world coordinates.
casacore::ImageRegion::ImageRegion | ( | LCRegion * | ) | [explicit] |
Similar constructors as above, but using a pointer.
It takes over the pointer, so the user should not delete the object. It is deleted by the ImageRegion destructor.
casacore::ImageRegion::ImageRegion | ( | LCSlicer * | ) | [explicit] |
casacore::ImageRegion::ImageRegion | ( | WCRegion * | ) | [explicit] |
casacore::ImageRegion::ImageRegion | ( | const ImageRegion & | other | ) |
Copy constructor (copy semantics).
virtual casacore::ImageRegion::~ImageRegion | ( | ) | [virtual] |
const LCRegion & casacore::ImageRegion::asLCRegion | ( | ) | const [inline] |
Get the region as an LCSlicer or WCRegion.
An exception is thrown if the region is not the correct type. Functions isWCRegion()
, etc. can be used to test the type.
Definition at line 198 of file ImageRegion.h.
References casacore::LattRegionHolder::asLCRegionPtr().
const LCSlicer & casacore::ImageRegion::asLCSlicer | ( | ) | const [inline] |
Definition at line 203 of file ImageRegion.h.
References casacore::LattRegionHolder::asLCSlicerPtr().
LCRegion& casacore::ImageRegion::asMask | ( | ) |
Get the region as a writable mask.
It throws an exception if the region is not an LCRegion or if its mask is not writable.
const WCRegion & casacore::ImageRegion::asWCRegion | ( | ) | const [inline] |
Definition at line 208 of file ImageRegion.h.
References asWCRegionPtr().
virtual const WCRegion* casacore::ImageRegion::asWCRegionPtr | ( | ) | const [virtual] |
Get the region as a pointer to WCRegion.
An exception is thrown if the region is not the correct type. Functions isWCRegion()
can be used to test the type.
Reimplemented from casacore::LattRegionHolder.
Referenced by asWCRegion().
virtual ImageRegion* casacore::ImageRegion::clone | ( | ) | const [virtual] |
Clone the object.
Reimplemented from casacore::LattRegionHolder.
static ImageRegion* casacore::ImageRegion::fromLatticeExpression | ( | const String & | latticeExpression | ) | [static] |
Create an ImageRegion from a lattice expression.
Returned pointer is created via new(); it is the caller's responsibility to delete it.
static ImageRegion* casacore::ImageRegion::fromRecord | ( | const TableRecord & | , | |
const String & | tableName | |||
) | [static] |
Convert correct object from a record.
static ImageRegion* casacore::ImageRegion::fromRecord | ( | LogIO * | logger, | |
const CoordinateSystem & | coords, | |||
const IPosition & | imShape, | |||
const Record & | regionRecord | |||
) | [static] |
Create an ImageRegion from a record.
The returned pointer is created via new(). It's the callers responsibility to delete it. If a null pointer is passed in for logger
no logging is done, otherwise informational messages regarding bounding boxes are emitted to the logger
object.
virtual Bool casacore::ImageRegion::isWCRegion | ( | ) | const [virtual] |
Test if the underlying region is an WCRegion.
Reimplemented from casacore::LattRegionHolder.
virtual LattRegionHolder* casacore::ImageRegion::makeComplement | ( | ) | const [virtual] |
Reimplemented from casacore::LattRegionHolder.
virtual LattRegionHolder* casacore::ImageRegion::makeDifference | ( | const LattRegionHolder & | other | ) | const [virtual] |
virtual LattRegionHolder* casacore::ImageRegion::makeIntersection | ( | const LattRegionHolder & | other | ) | const [virtual] |
virtual LattRegionHolder* casacore::ImageRegion::makeUnion | ( | const LattRegionHolder & | other | ) | const [virtual] |
Form a compound from this and the other region.
ImageRegion& casacore::ImageRegion::operator= | ( | const ImageRegion & | other | ) |
Assignment (copy semantics).
Reimplemented from casacore::LattRegionHolder.
virtual Bool casacore::ImageRegion::operator== | ( | const LattRegionHolder & | other | ) | const [virtual] |
Comparison.
virtual LatticeRegion casacore::ImageRegion::toLatticeRegion | ( | const CoordinateSystem & | cSys, | |
const IPosition & | shape | |||
) | const [virtual] |
Convert to a LatticeRegion using the given coordinate system (with reference pixel) and shape.
It will also make the region complete (absolute and non-fractional).
Reimplemented from casacore::LattRegionHolder.
LCRegion* casacore::ImageRegion::toLCRegion | ( | const CoordinateSystem & | cSys, | |
const IPosition & | shape | |||
) | const |
TableRecord casacore::ImageRegion::toRecord | ( | const String & | tableName | ) | const |
Convert the (derived) object to a record.
The record can be used to make the object persistent.
WCRegion* casacore::ImageRegion::itsWC [private] |
Definition at line 194 of file ImageRegion.h.