casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions | Private Attributes
casa::ImageRegion Class Reference

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

#include <ImageRegion.h>

Inheritance diagram for casa::ImageRegion:
casa::LattRegionHolder

List of all members.

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 ()
ImageRegionoperator= (const ImageRegion &other)
 Assignment (copy semantics).
virtual ImageRegionclone () 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 WCRegionasWCRegionPtr () const
 Get the region as a pointer to WCRegion.
const LCRegionasLCRegion () const
 Get the region as an LCSlicer or WCRegion.
const LCSlicerasLCSlicer () const
const WCRegionasWCRegion () const
LCRegionasMask ()
 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.
LCRegiontoLCRegion (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 LattRegionHoldermakeUnion (const LattRegionHolder &other) const
 Form a compound from this and the other region.
virtual LattRegionHoldermakeIntersection (const LattRegionHolder &other) const
virtual LattRegionHoldermakeDifference (const LattRegionHolder &other) const
virtual LattRegionHoldermakeComplement () const

Static Public Member Functions

static ImageRegionfromLatticeExpression (const String &latticeExpression)
 Create an ImageRegion from a lattice expression.
static ImageRegionfromRecord (LogIO *const &logger, const CoordinateSystem &coords, const IPosition &imShape, const Record &regionRecord)
 Create an ImageRegion from a record.
static ImageRegionfromRecord (const TableRecord &, const String &tableName)
 Convert correct object from a record.
static RecordtweakedRegionRecord (Record *Region)
 moved from ImageAnalysis TODO: From Ger: In fact I doubt if that tweaked function is really needed.

Private Attributes

WCRegionitsWC

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 85 of file ImageRegion.h.


Constructor & Destructor Documentation

Default constructor (has no region at all).

Construct from a region based on lattice coordinates.

Construct from a slicer based on lattice coordinates.

Construct from a region based on world coordinates.

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.

Copy constructor (copy semantics).

virtual casa::ImageRegion::~ImageRegion ( ) [virtual]

Member Function Documentation

const LCRegion & casa::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 206 of file ImageRegion.h.

References casa::LattRegionHolder::asLCRegionPtr().

const LCSlicer & casa::ImageRegion::asLCSlicer ( ) const [inline]

Definition at line 211 of file ImageRegion.h.

References casa::LattRegionHolder::asLCSlicerPtr().

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 & casa::ImageRegion::asWCRegion ( ) const [inline]

Definition at line 216 of file ImageRegion.h.

References asWCRegionPtr().

virtual const WCRegion* casa::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 casa::LattRegionHolder.

Referenced by asWCRegion().

virtual ImageRegion* casa::ImageRegion::clone ( ) const [virtual]

Clone the object.

Reimplemented from casa::LattRegionHolder.

static ImageRegion* casa::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. This method was moved from ImageAnalysis.

static ImageRegion* casa::ImageRegion::fromRecord ( LogIO *const &  logger,
const CoordinateSystem coords,
const IPosition imShape,
const Record regionRecord 
) [static]

Create an ImageRegion from a record.

The returned pointer is created via new() and so callers are responsible for deleting 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. Moved from ImageAnalysis.

static ImageRegion* casa::ImageRegion::fromRecord ( const TableRecord ,
const String tableName 
) [static]

Convert correct object from a record.

virtual Bool casa::ImageRegion::isWCRegion ( ) const [virtual]

Test if the underlying region is an WCRegion.

Reimplemented from casa::LattRegionHolder.

Reimplemented from casa::LattRegionHolder.

virtual LattRegionHolder* casa::ImageRegion::makeDifference ( const LattRegionHolder other) const [virtual]

Reimplemented from casa::LattRegionHolder.

virtual LattRegionHolder* casa::ImageRegion::makeIntersection ( const LattRegionHolder other) const [virtual]

Reimplemented from casa::LattRegionHolder.

virtual LattRegionHolder* casa::ImageRegion::makeUnion ( const LattRegionHolder other) const [virtual]

Form a compound from this and the other region.

Reimplemented from casa::LattRegionHolder.

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

Assignment (copy semantics).

virtual Bool casa::ImageRegion::operator== ( const LattRegionHolder other) const [virtual]

Comparison.

Reimplemented from casa::LattRegionHolder.

virtual LatticeRegion casa::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 casa::LattRegionHolder.

LCRegion* casa::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 casa::ImageRegion::toRecord ( const String tableName) const

Convert the (derived) object to a record.

The record can be used to make the object persistent.

static Record* casa::ImageRegion::tweakedRegionRecord ( Record Region) [static]

moved from ImageAnalysis TODO: From Ger: In fact I doubt if that tweaked function is really needed.

The fromRecord function in e.g. LCBox use toArrayFloat which converts a double array to a float array. You should try if the code works fine without doing the tweakrecord.


Member Data Documentation

Definition at line 202 of file ImageRegion.h.


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