WCIntersection.h

Classes

WCIntersection -- Make the intersection of 2 or more image regions. (full description)

class WCIntersection: public WCCompound

Interface

Public Members
WCIntersection (const ImageRegion& region1, const ImageRegion& region2)
WCIntersection (const ImageRegion* region1, const ImageRegion* region2 = 0, const ImageRegion* region3 = 0, const ImageRegion* region4 = 0, const ImageRegion* region5 = 0, const ImageRegion* region6 = 0, const ImageRegion* region7 = 0, const ImageRegion* region8 = 0, const ImageRegion* region9 = 0, const ImageRegion* region10 = 0)
WCIntersection (const PtrBlock<const ImageRegion*>& regions)
WCIntersection (Bool takeOver, const PtrBlock<const WCRegion*>& regions)
WCIntersection (const WCIntersection& other)
virtual ~WCIntersection()
WCIntersection& operator= (const WCIntersection& other)
virtual Bool operator== (const WCRegion& other) const
virtual WCRegion* cloneRegion() const
static String className()
virtual String type() const
virtual TableRecord toRecord (const String& tableName) const
static WCIntersection* fromRecord (const TableRecord&, const String& tableName)
Protected Members
virtual LCRegion* doToLCRegion (const CoordinateSystem& cSys, const IPosition& shape, const IPosition& pixelAxesMap, const IPosition& outOrder) const

Description

Prerequisite

Synopsis

The WCIntersection class is a specialization of class WCCompound. It makes it possible to take the intersection of 2 or more image regions. Note that only world coordinate regions can be used in a compound, thus an LCSlicer object is not allowed in an intersection.

The intersection of regions is the collection of the pixels masked-on in all regions.

The regions in a intersection can have different axes and dimensionalities. The axes and dimensionality of a intersection are determined by the collection of all different axes in its regions. Each individual region will be auto-extended along the axes not being part of the region. E.g. one can define a WCBox with axis RA and another WCBox with axis DEC. The intersection will be 2-dim with axes RA and DEC. The first box will be auto-extended to cover the DEC axis, which results in a 2-dim box with its DEC axis the length of the image's DEC axis. Similarly the second box will be auto-extended to cover the RA axis.

Example


 

Member Description

WCIntersection (const ImageRegion& region1, const ImageRegion& region2)
WCIntersection (const ImageRegion* region1, const ImageRegion* region2 = 0, const ImageRegion* region3 = 0, const ImageRegion* region4 = 0, const ImageRegion* region5 = 0, const ImageRegion* region6 = 0, const ImageRegion* region7 = 0, const ImageRegion* region8 = 0, const ImageRegion* region9 = 0, const ImageRegion* region10 = 0)
WCIntersection (const PtrBlock<const ImageRegion*>& regions)

Construct the intersection of one or more image regions. The image regions have to contain WCRegion objects, otherwise an exception is thrown.

WCIntersection (Bool takeOver, const PtrBlock<const WCRegion*>& regions)

Construct from multiple regions given as a Block. When takeOver is True, the destructor will delete the given regions. Otherwise a copy of the regions is made.

WCIntersection (const WCIntersection& other)

Copy constructor (copy semantics).

virtual ~WCIntersection()

WCIntersection& operator= (const WCIntersection& other)

Assignment (copy semantics).

virtual Bool operator== (const WCRegion& other) const

Comparison

virtual WCRegion* cloneRegion() const

Make a copy of the derived object.

static String className()

Get the class name (to store in the record).

virtual String type() const

Get the region type. Returns className()

virtual TableRecord toRecord (const String& tableName) const

Convert the (derived) object to a record.

static WCIntersection* fromRecord (const TableRecord&, const String& tableName)

Convert correct object from a record.

virtual LCRegion* doToLCRegion (const CoordinateSystem& cSys, const IPosition& shape, const IPosition& pixelAxesMap, const IPosition& outOrder) const

Convert to an LCRegion using the given coordinate system and shape. pixelAxesMap(i) gives the pixel axis in cSys of axes i in the axesDesc.