casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
casacore::ImageRegion Class Reference

Class to hold a region of interest in an image. More...

#include <ImageRegion.h>

Inheritance diagram for casacore::ImageRegion:
casacore::LattRegionHolder

Public Member Functions

 ImageRegion ()
 Default constructor (has no region at all). More...
 
 ImageRegion (const LCRegion &)
 Construct from a region based on lattice coordinates. More...
 
 ImageRegion (const LCSlicer &)
 Construct from a slicer based on lattice coordinates. More...
 
 ImageRegion (const WCRegion &)
 Construct from a region based on world coordinates. More...
 
 ImageRegion (LCRegion *)
 Similar constructors as above, but using a pointer. More...
 
 ImageRegion (LCSlicer *)
 
 ImageRegion (WCRegion *)
 
 ImageRegion (const ImageRegion &other)
 Copy constructor (copy semantics). More...
 
virtual ~ImageRegion ()
 
ImageRegionoperator= (const ImageRegion &other)
 Assignment (copy semantics). More...
 
virtual ImageRegionclone () const
 Clone the object. More...
 
virtual Bool operator== (const LattRegionHolder &other) const
 Comparison. More...
 
virtual Bool isWCRegion () const
 Test if the underlying region is an WCRegion. More...
 
virtual const WCRegionasWCRegionPtr () const
 Get the region as a pointer to WCRegion. More...
 
const LCRegionasLCRegion () const
 Get the region as an LCSlicer or WCRegion. More...
 
const LCSlicerasLCSlicer () const
 
const WCRegionasWCRegion () const
 
LCRegionasMask ()
 Get the region as a writable mask. More...
 
virtual LatticeRegion toLatticeRegion (const CoordinateSystem &cSys, const IPosition &shape) const
 Convert to a LatticeRegion using the given coordinate system (with reference pixel) and shape. More...
 
LCRegiontoLCRegion (const CoordinateSystem &cSys, const IPosition &shape) const
 Convert to an LCRegion using the given coordinate system (with reference pixel) and shape. More...
 
TableRecord toRecord (const String &tableName) const
 Convert the (derived) object to a record. More...
 
virtual LattRegionHoldermakeUnion (const LattRegionHolder &other) const
 Form a compound from this and the other region. More...
 
virtual LattRegionHoldermakeIntersection (const LattRegionHolder &other) const
 
virtual LattRegionHoldermakeDifference (const LattRegionHolder &other) const
 
virtual LattRegionHoldermakeComplement () const
 
- Public Member Functions inherited from casacore::LattRegionHolder
 LattRegionHolder (const LCRegion &)
 Construct from a region based on lattice coordinates. More...
 
 LattRegionHolder (const LCSlicer &)
 Construct from a slicer based on lattice coordinates. More...
 
 LattRegionHolder (LCRegion *)
 Similar constructors as above, but using a pointer. More...
 
 LattRegionHolder (LCSlicer *)
 
 LattRegionHolder (const LattRegionHolder &other)
 Copy constructor (copy semantics). More...
 
virtual ~LattRegionHolder ()
 
LattRegionHolderoperator= (const LattRegionHolder &other)
 Assignment (copy semantics). More...
 
Bool operator!= (const LattRegionHolder &other) const
 
Bool isLCRegion () const
 Test if the underlying region is an LCRegion, etc. More...
 
Bool isLCSlicer () const
 
const LCRegionasLCRegionPtr () const
 Get the region as a pointer to a LCRegion, LCSlicer, or WCRegion. More...
 
const LCSlicerasLCSlicerPtr () const
 
uInt ndim () const
 Get the dimensionality. More...
 
LatticeRegion toLatticeRegion (const IPosition &shape) const
 Convert to a LatticeRegion using the given shape. More...
 

Static Public Member Functions

static ImageRegionfromLatticeExpression (const String &latticeExpression)
 Create an ImageRegion from a lattice expression. More...
 
static ImageRegionfromRecord (LogIO *logger, const CoordinateSystem &coords, const IPosition &imShape, const Record &regionRecord)
 Create an ImageRegion from a record. More...
 
static ImageRegionfromRecord (const TableRecord &, const String &tableName)
 Convert correct object from a record. More...
 

Private Attributes

WCRegionitsWC
 

Additional Inherited Members

- Protected Member Functions inherited from casacore::LattRegionHolder
 LattRegionHolder (uInt ndim)
 Construct for the given dimensionality (for derived classes). More...
 

Detailed Description

Class to hold a region of interest in an image.

Intended use:

Public interface

Prerequisite

Synopsis

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.

Example

Motivation

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.

Constructor & Destructor Documentation

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

Member Function Documentation

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 ( 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.

static ImageRegion* casacore::ImageRegion::fromRecord ( const TableRecord ,
const String tableName 
)
static

Convert correct object from a record.

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

Reimplemented from casacore::LattRegionHolder.

virtual LattRegionHolder* casacore::ImageRegion::makeIntersection ( const LattRegionHolder other) const
virtual

Reimplemented from casacore::LattRegionHolder.

virtual LattRegionHolder* casacore::ImageRegion::makeUnion ( const LattRegionHolder other) const
virtual

Form a compound from this and the other region.

Reimplemented from casacore::LattRegionHolder.

ImageRegion& casacore::ImageRegion::operator= ( const ImageRegion other)

Assignment (copy semantics).

virtual Bool casacore::ImageRegion::operator== ( const LattRegionHolder other) const
virtual

Comparison.

Reimplemented from casacore::LattRegionHolder.

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

Convert to an LCRegion using the given coordinate system (with reference pixel) and shape.

It will also make the region complete (absolute and non-fractional). An exception is thrown if the region type is a LCSlicer. The axes argument tells which axes to use from the coordinate system and shape.

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.

Member Data Documentation

WCRegion* casacore::ImageRegion::itsWC
private

Definition at line 194 of file ImageRegion.h.


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