LCExtension.h

Classes

LCExtension -- Extend an LCRegion along straight lines to other dimensions (full description)

class LCExtension: public LCRegionMulti

Interface

Public Members
LCExtension()
LCExtension (const LCRegion& region, const IPosition& extendAxes, const LCBox& extendBox)
LCExtension (Bool takeOver, const LCRegion* region, const IPosition& extendAxes, const LCBox& extendBox)
LCExtension (const LCExtension& other)
virtual ~LCExtension()
LCExtension& operator= (const LCExtension& other)
virtual Bool operator== (const LCRegion& other) const
virtual LCRegion* cloneRegion() const
const LCRegion& region() const
const IPosition& extendAxes() const
const LCBox& extendBox() const
static String className()
virtual String type() const
virtual TableRecord toRecord (const String& tableName) const
static LCExtension* fromRecord (const TableRecord&, const String& tableName)
Protected Members
virtual LCRegion* doTranslate (const Vector<Float>& translateVector, const IPosition& newLatticeShape) const
virtual void multiGetSlice (Array<Bool>& buffer, const Slicer& section)
virtual IPosition doNiceCursorShape (uInt maxPixels) const
Private Members
void fillRegionAxes()
void fill (const IPosition& stretchAxes, const LCBox& stretchBox)

Description

Prerequisite

Synopsis

The LCExtension class is a specialization of class LCRegion. It makes it possible to extend a LCRegion along straight lines to other dimensions. E.g. a circle in the xy-plane can be extended to a cylinder in the xyz-space. It can be used for a lattice of any dimensionality as long as the dimensionality of the (hyper-)extension matches the dimensionality of the lattice.

Example


 

To Do

Member Description

LCExtension()

LCExtension (const LCRegion& region, const IPosition& extendAxes, const LCBox& extendBox)
LCExtension (Bool takeOver, const LCRegion* region, const IPosition& extendAxes, const LCBox& extendBox)

Extend the given region along axes as given by extendAxes from the bottom left corner (blc) to the top right corner (trc) as given by extendBox. Every kind of box (absolute, relative, fractional, unspecified) can be used to define the extension blc and trc. The sum of the dimensionality of the region and the extend box make up the dimensionality of the LCExtension region. Similarly the lattice shapes in region and box are combined.
The second version takes over the pointer when the switch is true.

LCExtension (const LCExtension& other)

Copy constructor (copy semantics).

virtual ~LCExtension()

LCExtension& operator= (const LCExtension& other)

Assignment (copy semantics).

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

Comparison

virtual LCRegion* cloneRegion() const

Make a copy of the derived object.

const LCRegion& region() const

Get the original region.

const IPosition& extendAxes() const

Get the extend axes.

const LCBox& extendBox() const

Get the extend box.

static String className()

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

virtual String type() const

Get the region type. Returns the class name.

virtual TableRecord toRecord (const String& tableName) const

Convert the (derived) object to a record.

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

Convert correct object from a record.

virtual LCRegion* doTranslate (const Vector<Float>& translateVector, const IPosition& newLatticeShape) const

Construct another LCRegion (for e.g. another lattice) by moving this one. It recalculates the bounding box and mask. A positive translation value indicates "to right".

virtual void multiGetSlice (Array<Bool>& buffer, const Slicer& section)

Do the actual getting of the mask.

virtual IPosition doNiceCursorShape (uInt maxPixels) const

This function is needed here because the niceCursorShape of the contributing region does not make any sense (other dimensionality).

void fillRegionAxes()
void fill (const IPosition& stretchAxes, const LCBox& stretchBox)

Fill the object.