LCUnion.h

Classes

LCUnion -- Make the union of 2 or more regions. (full description)

class LCUnion: public LCRegionMulti

Interface

Public Members
LCUnion()
LCUnion (const LCRegion& region1, const LCRegion& region2)
LCUnion (Bool takeOver, const LCRegion* region1, const LCRegion* region2 = 0, const LCRegion* region3 = 0, const LCRegion* region4 = 0, const LCRegion* region5 = 0, const LCRegion* region6 = 0, const LCRegion* region7 = 0, const LCRegion* region8 = 0, const LCRegion* region9 = 0, const LCRegion* region10 = 0)
LCUnion (Bool takeOver, const PtrBlock<const LCRegion*>& regions)
LCUnion (const LCUnion& other)
virtual ~LCUnion()
LCUnion& operator= (const LCUnion& other)
virtual Bool operator== (const LCRegion& other) const
virtual LCRegion* cloneRegion() const
static String className()
virtual String type() const
virtual TableRecord toRecord (const String& tableName) const
static LCUnion* 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)
Private Members
void defineBox()

Description

Prerequisite

Synopsis

The LCUnion 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. includes the union border. It can only be used for a lattice of any dimensionality as long as the dimensionality of the (hyper-)union matches the dimensionality of the lattice.

The center of the union must be inside the lattice

Example


 

To Do

Member Description

LCUnion()

LCUnion (const LCRegion& region1, const LCRegion& region2)

Construct the union of the given regions.

LCUnion (Bool takeOver, const LCRegion* region1, const LCRegion* region2 = 0, const LCRegion* region3 = 0, const LCRegion* region4 = 0, const LCRegion* region5 = 0, const LCRegion* region6 = 0, const LCRegion* region7 = 0, const LCRegion* region8 = 0, const LCRegion* region9 = 0, const LCRegion* region10 = 0)
LCUnion (Bool takeOver, const PtrBlock<const LCRegion*>& regions)

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

LCUnion (const LCUnion& other)

Copy constructor (copy semantics).

virtual ~LCUnion()

LCUnion& operator= (const LCUnion& other)

Assignment (copy semantics).

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

Comparison

virtual LCRegion* 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 LCUnion* 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.

void defineBox()

Make the bounding box and determine the offsets.