Make the intersection of 2 or more regions. More...
#include <LCRegionMulti.h>
Public Member Functions | |
| LCRegionMulti () | |
| LCRegionMulti (const LCRegion ®ion1, const LCRegion ®ion2) | |
| 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 PtrBlock< const LCRegion * > ®ions) | |
| 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? | |
Protected Member Functions | |
| TableRecord | makeRecord (const String &tableName) const |
| Store the contributing regions in a record. | |
| void | multiTranslate (PtrBlock< 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 ®Start, IPosition ®End, const Slicer §ion, uInt regNr) const |
| Find which area of the section and region are needed. | |
| const PtrBlock< 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 §ion) |
| Do the actual getting of an array of values. | |
| virtual void | multiGetSlice (Array< Bool > &buffer, const Slicer §ion)=0 |
| Get the values from the class derived from Multi. | |
| virtual IPosition | doNiceCursorShape (uInt maxPixels) const |
| Get the best cursor shape. | |
Static Protected Member Functions | |
| static void | unmakeRecord (PtrBlock< 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 |
| PtrBlock< const LCRegion * > | itsRegions |
Make the intersection of 2 or more regions.
Public interface
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
Definition at line 76 of file LCRegionMulti.h.
| casacore::LCRegionMulti::LCRegionMulti | ( | ) |
Construct from 2 regions.
| 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.
| casacore::LCRegionMulti::LCRegionMulti | ( | Bool | takeOver, | |
| const PtrBlock< 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.
| casacore::LCRegionMulti::LCRegionMulti | ( | const LCRegionMulti & | other | ) |
Copy constructor (copy semantics).
| virtual casacore::LCRegionMulti::~LCRegionMulti | ( | ) | [virtual] |
| 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.
| 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 >.
| 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.
| void casacore::LCRegionMulti::fillHasMask | ( | ) | [protected] |
Determine if all regions have mask (used by LCIntersection).
| 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.
| virtual Bool casacore::LCRegionMulti::hasMask | ( | ) | const [virtual] |
Does the region have a mask?
Implements casacore::LCRegion.
| void casacore::LCRegionMulti::init | ( | Bool | takeOver | ) | [private] |
Check if the regions are correct.
If needed, make a copy of the region objects.
| TableRecord casacore::LCRegionMulti::makeRecord | ( | const String & | tableName | ) | const [protected] |
Store the contributing regions in a record.
| 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.
| void casacore::LCRegionMulti::multiTranslate | ( | PtrBlock< const LCRegion * > & | , | |
| const Vector< Float > & | translateVector, | |||
| const IPosition & | newLatticeShape | |||
| ) | const [protected] |
Translate all regions.
| LCRegionMulti& casacore::LCRegionMulti::operator= | ( | const LCRegionMulti & | other | ) |
Assignment (copy semantics).
Reimplemented from casacore::LCRegion.
Reimplemented in casacore::LCComplement, casacore::LCConcatenation, casacore::LCDifference, casacore::LCExtension, casacore::LCIntersection, casacore::LCStretch, and casacore::LCUnion.
Comparison.
Reimplemented in casacore::LCComplement, casacore::LCConcatenation, casacore::LCDifference, casacore::LCExtension, casacore::LCIntersection, casacore::LCStretch, and casacore::LCUnion.
Get the contributing regions.
Definition at line 171 of file LCRegionMulti.h.
References itsRegions.
Referenced by casacore::LCStretch::region(), and casacore::LCExtension::region().
| static void casacore::LCRegionMulti::unmakeRecord | ( | PtrBlock< const LCRegion * > & | , | |
| const TableRecord & | , | |||
| const String & | tableName | |||
| ) | [static, protected] |
Retrieve the contributing objects from the record.
Int casacore::LCRegionMulti::itsHasMask [private] |
Definition at line 166 of file LCRegionMulti.h.
PtrBlock<const LCRegion*> casacore::LCRegionMulti::itsRegions [private] |
Definition at line 167 of file LCRegionMulti.h.
Referenced by regions().
1.6.1