Loading...
Searching...
No Matches
casacore::LCRegionMulti Class Referenceabstract
lattices package (libcasa_lattices) » LRegions_module

More...

`#include <LCRegionMulti.h>`

## Public Member Functions

| LCRegionMulti ()
| LCRegionMulti (const LCRegion &region1, const LCRegion &region2)
| Construct from 2 regions.
| LCRegionMulti (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)
| Construct from multiple regions.
| LCRegionMulti (Bool takeOver, const Block< const LCRegion * > &regions)
| Construct from multiple regions given as a Block.
| LCRegionMulti (const LCRegionMulti &other)
| Copy constructor (copy semantics).
virtual | ~LCRegionMulti ()
LCRegionMulti & | operator= (const LCRegionMulti &other)
| Assignment (copy semantics).
virtual Bool | operator== (const LCRegion &other) const
| Comparison.
virtual Bool | hasMask () const
| Does the region have a mask?
Public Member Functions inherited from casacore::LCRegion
| LCRegion ()
| LCRegion (const IPosition &latticeShape)
| Construct with the lattice shape only.
| LCRegion (const LCRegion &other)
| Copy constructor (copy semantics).
virtual | ~LCRegion ()
Bool | operator!= (const LCRegion &other) const
| Non-equality.
virtual Lattice< Bool > * | clone () const
| Make a copy of the derived object.
virtual LCRegion * | cloneRegion () const =0
virtual void | handleDelete ()
| Handle deletion of the region by deleting possible tables.
virtual void | handleRename (const String &newName, Bool overwrite)
| Handle renaming the region by renaming possible tables.
virtual String | type () const =0
| Region type.
const String & | comment () const
| Get or set the comment.
void | setComment (const String &comment)
LCRegion * | translate (const IPosition &translateVector) const
| Construct another LCRegion (for e.g.
LCRegion * | translate (const IPosition &translateVector, const IPosition &newLatticeShape) const
LCRegion * | translate (const Vector< Float > &translateVector) const
LCRegion * | translate (const Vector< Float > &translateVector, const IPosition &newLatticeShape) const
const IPosition & | latticeShape () const
| Give the full lattice shape.
const Slicer & | boundingBox () const
| Give the bounding box.
Slicer | expand (const Slicer &slicer) const
| Expand a slicer or position in the region to the full lattice.
IPosition | expand (const IPosition &index) const
virtual TableRecord | toRecord (const String &tableName) const =0
| Convert the (derived) object to a record.
virtual uInt | ndim () const
| Return the dimensionality of the region.
virtual IPosition | shape () const
| Return the shape of the region (i.e.
virtual Bool | isWritable () const
| Usually the lattice (i.e.
virtual void | doPutSlice (const Array< Bool > &sourceBuffer, const IPosition &where, const IPosition &stride)
| Regions can usually not be put; i.e.
virtual void | set (const Bool &value)
| Set all elements in the Lattice to the given value.
virtual void | apply (Bool(*function)(Bool))
| Replace every element, x, of the Lattice with the result of f(x).
virtual void | apply (Bool(*function)(const Bool &))
virtual void | apply (const Functional< Bool, Bool > &function)
virtual void | putAt (const Bool &value, const IPosition &where)
| Put the value of a single element.
virtual void | copyData (const Lattice< Bool > &from)
| Copy the data from the given lattice to this one.
Public Member Functions inherited from casacore::Lattice< Bool >
virtual | ~Lattice ()
| a virtual destructor is needed so that it will use the actual destructor in the derived class
virtual DataType | dataType () const
| Get the data type of the lattice.
Bool | operator() (const IPosition &where) const
| Return the value of the single element located at the argument IPosition.
virtual Bool | getAt (const IPosition &where) const
Bool | get (COWPtr< Array< Bool > > &buffer, Bool removeDegenerateAxes=False) const
| Functions which extract an Array of values from a Lattice.
Bool | getSlice (COWPtr< Array< Bool > > &buffer, const Slicer &section, Bool removeDegenerateAxes=False) const
void | putSlice (const Array< Bool > &sourceBuffer, const IPosition &where, const IPosition &stride)
| A function which places an Array of values within this instance of the Lattice at the location specified by the IPosition "where", incrementing by "stride".
void | put (const Array< Bool > &sourceBuffer)
void | operator+= (const Lattice< Bool > &other)
| Add, subtract, multiple, or divide by another Lattice.
void | operator-= (const Lattice< Bool > &other)
void | operator*= (const Lattice< Bool > &other)
void | operator/= (const Lattice< Bool > &other)
virtual void | copyDataTo (Lattice< Bool > &to) const
| Copy the data from this lattice to the given lattice.
virtual uInt | advisedMaxPixels () const
| This function returns the advised maximum number of pixels to include in the cursor of an iterator.
virtual LatticeIterInterface< Bool > * | makeIter (const LatticeNavigator &navigator, Bool useRef) const
| These functions are used by the LatticeIterator class to generate an iterator of the correct type for a specified Lattice.
Public Member Functions inherited from casacore::LatticeBase
virtual | ~LatticeBase ()
| A virtual destructor is needed so that it will use the actual destructor in the derived class.
virtual String | imageType () const
| Get the image type (returns name of derived class).
virtual Bool | isPersistent () const
| Is the lattice persistent and can it be loaded by other processes as well?
virtual Bool | isPaged () const
| Is the lattice paged to disk?
virtual Bool | canReferenceArray () const
| Can the lattice data be referenced as an array section?
virtual void | save (const String &fileName) const
| Save the image in an AipsIO file with the given name.
virtual Bool | lock (FileLocker::LockType, uInt nattempts)
| It is strongly recommended to use class LatticeLocker to handle lattice locking.
virtual void | unlock ()
virtual Bool | hasLock (FileLocker::LockType) const
virtual void | resync ()
| Resynchronize the Lattice object with the lattice file.
virtual void | flush ()
| Flush the data (but do not unlock).
virtual void | tempClose ()
| Temporarily close the lattice.
virtual void | reopen ()
| Explicitly reopen the temporarily closed lattice.
virtual String | name (Bool stripPath=False) const
| Return the name of the current Lattice object.
virtual size_t | nelements () const
| Return the total number of elements in this Lattice.
size_t | size () const
Bool | conform (const LatticeBase &other) const
| Return a value of "True" if this instance of Lattice and 'other' have the same shape, otherwise returns a value of "False".
virtual LELCoordinates | lelCoordinates () const
| Return the coordinates of the lattice.
IPosition | niceCursorShape (uInt maxPixels) const
| Returns a recommended cursor shape for iterating through all the pixels in the Lattice.
IPosition | niceCursorShape () const
virtual Bool | ok () const
| Check class internals - used for debugging.
virtual uInt | maximumCacheSize () const
| Maximum cache size - not necessarily all used.
virtual void | setMaximumCacheSize (uInt howManyPixels)
| Set the maximum (allowed) cache size as indicated.
virtual void | setCacheSizeInTiles (uInt howManyTiles)
| Set the actual cache size for this Array to be big enough for the indicated number of tiles.
virtual void | setCacheSizeFromPath (const IPosition &sliceShape, const IPosition &windowStart, const IPosition &windowLength, const IPosition &axisPath)
| Set the cache size as to "fit" the indicated path.
virtual void | clearCache ()
| Clears and frees up the caches, but the maximum allowed cache size is unchanged from when setCacheSize was called.
virtual void | showCacheStatistics (ostream &os) const
| Report on cache success.

## Protected Member Functions

TableRecord | makeRecord (const String &tableName) const
| Store the contributing regions in a record.
void | multiTranslate (Block< const LCRegion * > &, const Vector< Float > &translateVector, const IPosition &newLatticeShape) const
| Translate all regions.
void | fillHasMask ()
| Determine if all regions have mask (used by LCIntersection).
Bool | findAreas (IPosition &bufStart, IPosition &bufEnd, IPosition &regStart, IPosition &regEnd, const Slicer &section, uInt regNr) const
| Find which area of the section and region are needed.
const Block< const LCRegion * > & | regions () const
| Get the contributing regions.
| LCRegionMulti (const LCRegion *region, const IPosition &latticeShape)
| Construct from lattice shape and region pointer, which is taken over.
virtual Bool | doGetSlice (Array< Bool > &buffer, const Slicer &section)
| Do the actual getting of an array of values.
virtual void | multiGetSlice (Array< Bool > &buffer, const Slicer &section)=0
| Get the values from the class derived from Multi.
virtual IPosition | doNiceCursorShape (uInt maxPixels) const
| Get the best cursor shape.
Protected Member Functions inherited from casacore::LCRegion
LCRegion & | operator= (const LCRegion &other)
| Assignment (copy semantics) is only useful for derived classes.
void | setBoundingBox (const Slicer &boundingBox)
| Sometimes it is inconvenient for a derived class to set the bounding box in the constructor.
void | setShapeAndBoundingBox (const IPosition &latticeShape, const Slicer &boundingBox)
virtual LCRegion * | doTranslate (const Vector< Float > &translateVector, const IPosition &newLatticeShape) const =0
| Do the actual translate in a derived class.
void | defineRecordFields (RecordInterface &record, const String &className) const
| Define the type and class name in the record.
Protected Member Functions inherited from casacore::Lattice< Bool >
void | handleMathTo (Lattice< Bool > &, int) const
| Lattice ()
| Define default constructor to satisfy compiler.
virtual void | handleMath (const Lattice< Bool > &from, int oper)
| Handle the Math operators (+=, -=, *=, /=).
Lattice< Bool > & | operator= (const Lattice< Bool > &)
Protected Member Functions inherited from casacore::LatticeBase
| LatticeBase ()
| Define default constructor to be used by derived classes.
| LatticeBase (const LatticeBase &)
| Copy constructor and assignment can only be used by derived classes.
LatticeBase & | operator= (const LatticeBase &)
void | throwBoolMath () const
| Throw an exception for arithmetic on a Bool Lattice.

## Static Protected Member Functions

static void | unmakeRecord (Block< const LCRegion * > &, const TableRecord &, const String &tableName)
| Retrieve the contributing objects from the record.

## Private Member Functions

void | init (Bool takeOver)
| Check if the regions are correct.

## Private Attributes

Int | itsHasMask
Block< const LCRegion * > | itsRegions

## Additional Inherited Members

Static Public Member Functions inherited from casacore::LCRegion
static LCRegion * | fromRecord (const TableRecord &, const String &tableName)
| Convert correct object from a record.

## Detailed Description

Make the intersection of 2 or more regions.

### Intended use:

Public interface

### Prerequisite

- LCRegion

### Synopsis

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

The center of the intersection must be inside the lattice

### Example

### To Do

Definition at line 74 of file LCRegionMulti.h.

## Constructor & Destructor Documentation

## LCRegionMulti() [1/6]

casacore::LCRegionMulti::LCRegionMulti | ( |  | ) |

Referenced by LCRegionMulti(), and operator=().

## LCRegionMulti() [2/6]

casacore::LCRegionMulti::LCRegionMulti | ( | const LCRegion & | region1,
|  | const LCRegion & | region2 )

Construct from 2 regions.

References casacore::LCRegion::LCRegion().

## LCRegionMulti() [3/6]

casacore::LCRegionMulti::LCRegionMulti | ( | 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 )

Construct from multiple regions.

References casacore::LCRegion::LCRegion().

## LCRegionMulti() [4/6]

casacore::LCRegionMulti::LCRegionMulti | ( | Bool | takeOver,
|  | const Block< const LCRegion * > & | 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.

References regions().

## LCRegionMulti() [5/6]

casacore::LCRegionMulti::LCRegionMulti | ( | const LCRegionMulti & | other | ) |

Copy constructor (copy semantics).

References LCRegionMulti().

## ~LCRegionMulti()

virtual casacore::LCRegionMulti::~LCRegionMulti | ( |  | ) |

virtual

## LCRegionMulti() [6/6]

casacore::LCRegionMulti::LCRegionMulti | ( | const LCRegion * | region,
|  | const IPosition & | latticeShape )

protected

Construct from lattice shape and region pointer, which is taken over.

Primarily meant for LCExtension.

References casacore::LCRegion::latticeShape(), and casacore::LCRegion::LCRegion().

## Member Function Documentation

## doGetSlice()

virtual Bool casacore::LCRegionMulti::doGetSlice | ( | Array< Bool > & | buffer,
|  | const Slicer & | section )

protected virtual

Do the actual getting of an array of values.

Implements casacore::Lattice< Bool >.

## doNiceCursorShape()

virtual IPosition casacore::LCRegionMulti::doNiceCursorShape | ( | uInt | maxPixels | ) | const

protected virtual

Get the best cursor shape.

Reimplemented from casacore::LatticeBase.

Reimplemented in casacore::LCConcatenation, casacore::LCExtension, and casacore::LCStretch.

## fillHasMask()

void casacore::LCRegionMulti::fillHasMask | ( |  | ) |

protected

Determine if all regions have mask (used by LCIntersection).

## findAreas()

Bool casacore::LCRegionMulti::findAreas | ( | IPosition & | bufStart,
|  | IPosition & | bufEnd,
|  | IPosition & | regStart,
|  | IPosition & | regEnd,
|  | const Slicer & | section,
|  | uInt | regNr ) const

protected

Find which area of the section and region are needed.

False is returned if no part of the region is included in the section.

## hasMask()

virtual Bool casacore::LCRegionMulti::hasMask | ( |  | ) | const

virtual

Does the region have a mask?

Implements casacore::LCRegion.

## init()

void casacore::LCRegionMulti::init | ( | Bool | takeOver | ) |

private

Check if the regions are correct.

If needed, make a copy of the region objects.

## makeRecord()

TableRecord casacore::LCRegionMulti::makeRecord | ( | const String & | tableName | ) | const

protected

Store the contributing regions in a record.

## multiGetSlice()

virtual void casacore::LCRegionMulti::multiGetSlice | ( | Array< Bool > & | buffer,
|  | const Slicer & | section )

protected pure virtual

Get the values from the class derived from Multi.

It is called when there is a mask. Note that it is not sure whether the buffer has the correct size.

Implemented in casacore::LCComplement, casacore::LCConcatenation, casacore::LCDifference, casacore::LCExtension, casacore::LCIntersection, casacore::LCStretch, and casacore::LCUnion.

## multiTranslate()

void casacore::LCRegionMulti::multiTranslate | ( | Block< const LCRegion * > & | ,
|  | const Vector< Float > & | translateVector,
|  | const IPosition & | newLatticeShape ) const

protected

Translate all regions.

## operator=()

LCRegionMulti & casacore::LCRegionMulti::operator= | ( | const LCRegionMulti & | other | ) |

Assignment (copy semantics).

References LCRegionMulti().

## operator==()

virtual Bool casacore::LCRegionMulti::operator== | ( | const LCRegion & | other | ) | const

virtual

Comparison.

Reimplemented from casacore::LCRegion.

Reimplemented in casacore::LCComplement, casacore::LCConcatenation, casacore::LCDifference, casacore::LCExtension, casacore::LCIntersection, casacore::LCStretch, and casacore::LCUnion.

References casacore::LCRegion::LCRegion().

## regions()

const Block< const LCRegion * > & casacore::LCRegionMulti::regions | ( |  | ) | const

inline protected

Get the contributing regions.

Definition at line 169 of file LCRegionMulti.h.

References itsRegions.

Referenced by casacore::LCComplement::LCComplement(), casacore::LCConcatenation::LCConcatenation(), casacore::LCConcatenation::LCConcatenation(), casacore::LCDifference::LCDifference(), casacore::LCIntersection::LCIntersection(), LCRegionMulti(), casacore::LCUnion::LCUnion(), casacore::LCExtension::region(), and casacore::LCStretch::region().

## unmakeRecord()

void casacore::LCRegionMulti::unmakeRecord | ( | Block< const LCRegion * > & | ,
|  | const TableRecord & | ,
|  | const String & | tableName )

static protected

Retrieve the contributing objects from the record.

## Member Data Documentation

## itsHasMask

Int casacore::LCRegionMulti::itsHasMask

private

Definition at line 164 of file LCRegionMulti.h.

## itsRegions

Block<const LCRegion*> casacore::LCRegionMulti::itsRegions

private

Definition at line 165 of file LCRegionMulti.h.

Referenced by regions().

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

- lattices/LRegions/LCRegionMulti.h