Class to hold a region of interest in an image. More...
#include <LattRegionHolder.h>
Public Member Functions | |
LattRegionHolder (const LCRegion &) | |
Construct from a region based on lattice coordinates. | |
LattRegionHolder (const LCSlicer &) | |
Construct from a slicer based on lattice coordinates. | |
LattRegionHolder (LCRegion *) | |
Similar constructors as above, but using a pointer. | |
LattRegionHolder (LCSlicer *) | |
LattRegionHolder (const LattRegionHolder &other) | |
Copy constructor (copy semantics). | |
virtual | ~LattRegionHolder () |
LattRegionHolder & | operator= (const LattRegionHolder &other) |
Assignment (copy semantics). | |
virtual LattRegionHolder * | clone () const |
Clone the object. | |
virtual Bool | operator== (const LattRegionHolder &other) const |
Comparison. | |
Bool | operator!= (const LattRegionHolder &other) const |
Bool | isLCRegion () const |
Test if the underlying region is an LCRegion, etc. | |
Bool | isLCSlicer () const |
virtual Bool | isWCRegion () const |
const LCRegion * | asLCRegionPtr () const |
Get the region as a pointer to a LCRegion, LCSlicer, or WCRegion. | |
const LCSlicer * | asLCSlicerPtr () const |
virtual const WCRegion * | asWCRegionPtr () const |
uInt | ndim () const |
Get the dimensionality. | |
LatticeRegion | toLatticeRegion (const IPosition &shape) const |
Convert to a LatticeRegion using the given shape. | |
virtual LatticeRegion | toLatticeRegion (const CoordinateSystem &cSys, const IPosition &shape) const |
Convert to a LatticeRegion using the given coordinate system (with reference pixel) and shape. | |
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 |
Protected Member Functions | |
LattRegionHolder (uInt ndim) | |
Construct for the given dimensionality (for derived classes). | |
Private Attributes | |
LCRegion * | itsLC |
LCSlicer * | itsSlicer |
uInt | itsNdim |
Class to hold a region of interest in an image.
Public interface
The only purpose of LattRegionHolder is to have a single object for the various kinds of regions. It can hold a LCRegion , and LCSlicer .
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 LattRegionHolder is chosen, from which the container ImageRegion is derived.
Definition at line 87 of file LattRegionHolder.h.
casacore::LattRegionHolder::LattRegionHolder | ( | const LCRegion & | ) |
Construct from a region based on lattice coordinates.
casacore::LattRegionHolder::LattRegionHolder | ( | const LCSlicer & | ) |
Construct from a slicer based on lattice coordinates.
casacore::LattRegionHolder::LattRegionHolder | ( | 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 LattRegionHolder destructor.
casacore::LattRegionHolder::LattRegionHolder | ( | LCSlicer * | ) | [explicit] |
casacore::LattRegionHolder::LattRegionHolder | ( | const LattRegionHolder & | other | ) |
Copy constructor (copy semantics).
virtual casacore::LattRegionHolder::~LattRegionHolder | ( | ) | [virtual] |
casacore::LattRegionHolder::LattRegionHolder | ( | uInt | ndim | ) | [explicit, protected] |
Construct for the given dimensionality (for derived classes).
const LCRegion* casacore::LattRegionHolder::asLCRegionPtr | ( | ) | const |
Get the region as a pointer to a LCRegion, 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.
Referenced by casacore::ImageRegion::asLCRegion().
const LCSlicer* casacore::LattRegionHolder::asLCSlicerPtr | ( | ) | const |
Referenced by casacore::ImageRegion::asLCSlicer().
virtual const WCRegion* casacore::LattRegionHolder::asWCRegionPtr | ( | ) | const [virtual] |
Reimplemented in casacore::ImageRegion.
virtual LattRegionHolder* casacore::LattRegionHolder::clone | ( | ) | const [virtual] |
Clone the object.
Reimplemented in casacore::ImageRegion.
Bool casacore::LattRegionHolder::isLCRegion | ( | ) | const [inline] |
Test if the underlying region is an LCRegion, etc.
Definition at line 170 of file LattRegionHolder.h.
References itsLC.
Bool casacore::LattRegionHolder::isLCSlicer | ( | ) | const [inline] |
Definition at line 174 of file LattRegionHolder.h.
References itsSlicer.
virtual Bool casacore::LattRegionHolder::isWCRegion | ( | ) | const [virtual] |
Reimplemented in casacore::ImageRegion.
virtual LattRegionHolder* casacore::LattRegionHolder::makeComplement | ( | ) | const [virtual] |
Reimplemented in casacore::ImageRegion.
virtual LattRegionHolder* casacore::LattRegionHolder::makeDifference | ( | const LattRegionHolder & | other | ) | const [virtual] |
virtual LattRegionHolder* casacore::LattRegionHolder::makeIntersection | ( | const LattRegionHolder & | other | ) | const [virtual] |
virtual LattRegionHolder* casacore::LattRegionHolder::makeUnion | ( | const LattRegionHolder & | other | ) | const [virtual] |
Form a compound from this and the other region.
uInt casacore::LattRegionHolder::ndim | ( | ) | const [inline] |
Bool casacore::LattRegionHolder::operator!= | ( | const LattRegionHolder & | other | ) | const [inline] |
Definition at line 178 of file LattRegionHolder.h.
LattRegionHolder& casacore::LattRegionHolder::operator= | ( | const LattRegionHolder & | other | ) |
Assignment (copy semantics).
Reimplemented in casacore::ImageRegion.
virtual Bool casacore::LattRegionHolder::operator== | ( | const LattRegionHolder & | other | ) | const [virtual] |
Comparison.
virtual LatticeRegion casacore::LattRegionHolder::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 in casacore::ImageRegion.
LatticeRegion casacore::LattRegionHolder::toLatticeRegion | ( | const IPosition & | shape | ) | const |
Convert to a LatticeRegion using the given shape.
LCRegion* casacore::LattRegionHolder::itsLC [private] |
Definition at line 164 of file LattRegionHolder.h.
Referenced by isLCRegion().
uInt casacore::LattRegionHolder::itsNdim [private] |
Definition at line 166 of file LattRegionHolder.h.
Referenced by ndim().
LCSlicer* casacore::LattRegionHolder::itsSlicer [private] |
Definition at line 165 of file LattRegionHolder.h.
Referenced by isLCSlicer().