casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
casacore::LatticeRegion Class Reference

An optionally strided region in a Lattice. More...

#include <LatticeRegion.h>

Inheritance diagram for casacore::LatticeRegion:
casacore::Lattice< Bool > casacore::LatticeBase

Public Member Functions

 LatticeRegion ()
 The default constructor creates a LatticeRegion that is useless for just about everything, except that it can be assigned to with the assignment operator. More...
 
 LatticeRegion (const LCRegion &region)
 Create from the given region. More...
 
 LatticeRegion (LCRegion *region)
 Create from the given region and take over the pointer. More...
 
 LatticeRegion (const Slicer &slicer, const IPosition &latticeShape)
 Construct from the given slicer. More...
 
 LatticeRegion (const LatticeRegion &other)
 Copy constructor (reference semantics). More...
 
virtual ~LatticeRegion ()
 
LatticeRegionoperator= (const LatticeRegion &other)
 Assignment (reference semantics). More...
 
virtual Lattice< Bool > * clone () const
 Make a copy of the object (reference semantics). More...
 
virtual Bool isWritable () const
 Is the LatticeRegion writable? More...
 
Bool hasMask () const
 Has the region a mask? More...
 
virtual Bool lock (FileLocker::LockType, uInt nattempts)
 Handle the (un)locking. More...
 
virtual void unlock ()
 
virtual Bool hasLock (FileLocker::LockType) const
 
virtual void resync ()
 Resynchronize the PagedArray object with the lattice file. More...
 
virtual void flush ()
 Flush the data (but do not unlock). More...
 
virtual void tempClose ()
 Temporarily close the lattice. More...
 
virtual void reopen ()
 Explicitly reopen the temporarily closed lattice. More...
 
const LCRegionregion () const
 Get the LCRegion object describing the region. More...
 
const Slicerslicer () const
 Get the Slicer object describing the region. More...
 
virtual IPosition shape () const
 Returns the shape of the LatticeRegion including all degenerate axes (i.e. More...
 
virtual uInt ndim () const
 Returns the number of axes in this LatticeRegion. More...
 
virtual size_t nelements () const
 Returns the total number of elements in this LatticeRegion. More...
 
virtual Bool ok () const
 Check class internals - used for debugging. More...
 
virtual LatticeIterInterface
< Bool > * 
makeIter (const LatticeNavigator &navigator, Bool useRef) const
 This function is used by the LatticeIterator class to generate an iterator of the correct type for this Lattice. More...
 
virtual uInt advisedMaxPixels () const
 Returns the maximum recommended number of pixels for a cursor. More...
 
virtual IPosition doNiceCursorShape (uInt maxPixels) const
 Help the user pick a cursor for most efficient access. More...
 
virtual uInt maximumCacheSize () const
 Maximum size - not necessarily all used. More...
 
virtual void setMaximumCacheSize (uInt howManyPixels)
 Set the maximum (allowed) cache size as indicated. More...
 
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. More...
 
virtual void setCacheSizeInTiles (uInt howManyTiles)
 Set the actual cache size for this Array to be be big enough for the indicated number of tiles. More...
 
virtual void clearCache ()
 Clears and frees up the caches, but the maximum allowed cache size is unchanged from when setCacheSize was called. More...
 
virtual void showCacheStatistics (ostream &os) const
 Report on cache success. More...
 
virtual void set (const Bool &value)
 The following "put" functions are described in detail in class Lattice. More...
 
virtual void apply (Bool(*function)(Bool))
 Replace every element, x, of the Lattice with the result of f(x). More...
 
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. More...
 
virtual void copyData (const Lattice< Bool > &from)
 Copy the data from the given lattice to this one. More...
 
Slicer convert (const Slicer &slicer) const
 Convert positions to positions in the parent object. More...
 
IPosition convert (const IPosition &position) const
 
virtual Bool doGetSlice (Array< Bool > &buffer, const Slicer &section)
 Do the actual getting of the mask. More...
 
virtual void doPutSlice (const Array< Bool > &sourceBuffer, const IPosition &where, const IPosition &stride)
 Do the actual putting of the mask. More...
 
- 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 More...
 
virtual DataType dataType () const
 Get the data type of the lattice. More...
 
Bool operator() (const IPosition &where) const
 Return the value of the single element located at the argument IPosition. More...
 
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. More...
 
Bool get (Array< Bool > &buffer, Bool removeDegenerateAxes=False)
 
Array< Boolget (Bool removeDegenerateAxes=False) const
 
Bool getSlice (COWPtr< Array< Bool > > &buffer, const Slicer &section, Bool removeDegenerateAxes=False) const
 
Bool getSlice (COWPtr< Array< Bool > > &buffer, const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) const
 
Bool getSlice (COWPtr< Array< Bool > > &buffer, const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False) const
 
Bool getSlice (Array< Bool > &buffer, const Slicer &section, Bool removeDegenerateAxes=False)
 
Bool getSlice (Array< Bool > &buffer, const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False)
 
Bool getSlice (Array< Bool > &buffer, const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False)
 
Array< BoolgetSlice (const Slicer &section, Bool removeDegenerateAxes=False) const
 
Array< BoolgetSlice (const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) const
 
Array< BoolgetSlice (const IPosition &start, const IPosition &shape, const IPosition &stride, 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". More...
 
void putSlice (const Array< Bool > &sourceBuffer, const IPosition &where)
 
void put (const Array< Bool > &sourceBuffer)
 
void operator+= (const Lattice< Bool > &other)
 Add, subtract, multiple, or divide by another Lattice. More...
 
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. More...
 
- 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. More...
 
virtual String imageType () const
 Get the image type (returns name of derived class). More...
 
virtual Bool isPersistent () const
 Is the lattice persistent and can it be loaded by other processes as well? That is the case for a PagedArray or PagedImage and for an ImageExpr which does not use transient lattices or regions. More...
 
virtual Bool isPaged () const
 Is the lattice paged to disk?
The default implementation returns False. More...
 
virtual Bool canReferenceArray () const
 Can the lattice data be referenced as an array section? That is the case for an ArrayLattice or a Temp/SubLattice using it. More...
 
virtual void save (const String &fileName) const
 Save the image in an AipsIO file with the given name. More...
 
virtual String name (Bool stripPath=False) const
 Return the name of the current Lattice object. More...
 
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". More...
 
virtual LELCoordinates lelCoordinates () const
 Return the coordinates of the lattice. More...
 
IPosition niceCursorShape (uInt maxPixels) const
 Returns a recommended cursor shape for iterating through all the pixels in the Lattice. More...
 
IPosition niceCursorShape () const
 

Private Attributes

LCRegionitsRegion
 
Slicer itsSlicer
 
Bool itsHasRegionMask
 

Additional Inherited Members

- Protected Member Functions inherited from casacore::Lattice< Bool >
 Lattice ()
 Define default constructor to satisfy compiler. More...
 
 Lattice (const Lattice< Bool > &)
 Copy constructor and assignment can only be used by derived classes. More...
 
virtual void handleMath (const Lattice< Bool > &from, int oper)
 Handle the Math operators (+=, -=, *=, /=). More...
 
virtual void handleMathTo (Lattice< Bool > &to, int oper) const
 
Lattice< Bool > & operator= (const Lattice< Bool > &)
 
- Protected Member Functions inherited from casacore::LatticeBase
 LatticeBase ()
 Define default constructor to be used by derived classes. More...
 
 LatticeBase (const LatticeBase &)
 Copy constructor and assignment can only be used by derived classes. More...
 
LatticeBaseoperator= (const LatticeBase &)
 
void throwBoolMath () const
 Throw an exception for arithmetic on a Bool Lattice. More...
 

Detailed Description

An optionally strided region in a Lattice.

Intended use:

Internal

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Synopsis

A LatticeRegion is a lattice referencing a subset of another lattice by means of a Slicer object.
It is useful when only a subset of a lattice needs to be accessed.

When the LatticeRegion is created from a const Lattice object, it is not writable, thus it can only be used as an rvalue.

Example

Definition at line 74 of file LatticeRegion.h.

Constructor & Destructor Documentation

casacore::LatticeRegion::LatticeRegion ( )

The default constructor creates a LatticeRegion that is useless for just about everything, except that it can be assigned to with the assignment operator.

casacore::LatticeRegion::LatticeRegion ( const LCRegion region)

Create from the given region.

The pointer to the parent can be 0.

casacore::LatticeRegion::LatticeRegion ( LCRegion region)

Create from the given region and take over the pointer.

This means the user should not delete the region object pointed to, because it will be deleted by the LatticeRegion destructor. The pointer to the parent is set to 0.

casacore::LatticeRegion::LatticeRegion ( const Slicer slicer,
const IPosition latticeShape 
)

Construct from the given slicer.

The lattice shape has to be the lattice shape of the lattice where the region is taken from.

casacore::LatticeRegion::LatticeRegion ( const LatticeRegion other)

Copy constructor (reference semantics).

virtual casacore::LatticeRegion::~LatticeRegion ( )
virtual

Member Function Documentation

virtual uInt casacore::LatticeRegion::advisedMaxPixels ( ) const
virtual

Returns the maximum recommended number of pixels for a cursor.

This is the number of pixels in a tile.

Reimplemented from casacore::Lattice< Bool >.

virtual void casacore::LatticeRegion::apply ( Bool(*)(Bool function)
virtual

Replace every element, x, of the Lattice with the result of f(x).

You must pass in the address of the function – so the function must be declared and defined in the scope of your program. All versions of apply require a function that accepts a single argument of type T (the Lattice template type) and return a result of the same type. The first apply expects a function with an argument passed by value; the second expects the argument to be passed by const reference; the third requires an instance of the class Functional<T,T>. The first form ought to run faster for the built-in types, which may be an issue for large Lattices stored in memory, where disk access is not an issue.

Reimplemented from casacore::Lattice< Bool >.

virtual void casacore::LatticeRegion::apply ( Bool(*)(const Bool &)  function)
virtual

Reimplemented from casacore::Lattice< Bool >.

virtual void casacore::LatticeRegion::apply ( const Functional< Bool, Bool > &  function)
virtual

Reimplemented from casacore::Lattice< Bool >.

virtual void casacore::LatticeRegion::clearCache ( )
virtual

Clears and frees up the caches, but the maximum allowed cache size is unchanged from when setCacheSize was called.

Reimplemented from casacore::LatticeBase.

virtual Lattice<Bool>* casacore::LatticeRegion::clone ( ) const
virtual

Make a copy of the object (reference semantics).

Implements casacore::Lattice< Bool >.

Slicer casacore::LatticeRegion::convert ( const Slicer slicer) const

Convert positions to positions in the parent object.

Referenced by casacore::SubLattice< T >::positionInParent().

IPosition casacore::LatticeRegion::convert ( const IPosition position) const
virtual void casacore::LatticeRegion::copyData ( const Lattice< Bool > &  from)
virtual

Copy the data from the given lattice to this one.

The default implementation uses function copyDataTo.

Reimplemented from casacore::Lattice< Bool >.

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

Do the actual getting of the mask.

Implements casacore::Lattice< Bool >.

virtual IPosition casacore::LatticeRegion::doNiceCursorShape ( uInt  maxPixels) const
virtual

Help the user pick a cursor for most efficient access.

Reimplemented from casacore::LatticeBase.

virtual void casacore::LatticeRegion::doPutSlice ( const Array< Bool > &  sourceBuffer,
const IPosition where,
const IPosition stride 
)
virtual

Do the actual putting of the mask.

Only possible if region is writable.

Implements casacore::Lattice< Bool >.

virtual void casacore::LatticeRegion::flush ( )
virtual

Flush the data (but do not unlock).

Reimplemented from casacore::LatticeBase.

virtual Bool casacore::LatticeRegion::hasLock ( FileLocker::LockType  ) const
virtual

Reimplemented from casacore::LatticeBase.

Bool casacore::LatticeRegion::hasMask ( ) const
inline

Has the region a mask?

Definition at line 236 of file LatticeRegion.h.

References itsHasRegionMask.

virtual Bool casacore::LatticeRegion::isWritable ( ) const
virtual

Is the LatticeRegion writable?

Reimplemented from casacore::LatticeBase.

virtual Bool casacore::LatticeRegion::lock ( FileLocker::LockType  ,
uInt  nattempts 
)
virtual

Handle the (un)locking.

Reimplemented from casacore::LatticeBase.

virtual LatticeIterInterface<Bool>* casacore::LatticeRegion::makeIter ( const LatticeNavigator navigator,
Bool  useRef 
) const
virtual

This function is used by the LatticeIterator class to generate an iterator of the correct type for this Lattice.

Not recommended for general use.

Reimplemented from casacore::Lattice< Bool >.

virtual uInt casacore::LatticeRegion::maximumCacheSize ( ) const
virtual

Maximum size - not necessarily all used.

In pixels.

Reimplemented from casacore::LatticeBase.

virtual uInt casacore::LatticeRegion::ndim ( ) const
virtual

Returns the number of axes in this LatticeRegion.

This includes all degenerate axes.

Reimplemented from casacore::LatticeBase.

virtual size_t casacore::LatticeRegion::nelements ( ) const
virtual

Returns the total number of elements in this LatticeRegion.

Reimplemented from casacore::LatticeBase.

virtual Bool casacore::LatticeRegion::ok ( ) const
virtual

Check class internals - used for debugging.

Should always return True

Reimplemented from casacore::LatticeBase.

LatticeRegion& casacore::LatticeRegion::operator= ( const LatticeRegion other)

Assignment (reference semantics).

virtual void casacore::LatticeRegion::putAt ( const Bool value,
const IPosition where 
)
virtual

Put the value of a single element.


The default implementation uses putSlice.

Reimplemented from casacore::Lattice< Bool >.

const LCRegion & casacore::LatticeRegion::region ( ) const
inline

Get the LCRegion object describing the region.

Note that it does not contain strides, even if this LatticeRegion object was constructed from a Slicer with strides. In that case the region only defines the resulting shape.

Definition at line 240 of file LatticeRegion.h.

References itsRegion.

virtual void casacore::LatticeRegion::reopen ( )
virtual

Explicitly reopen the temporarily closed lattice.

Reimplemented from casacore::LatticeBase.

virtual void casacore::LatticeRegion::resync ( )
virtual

Resynchronize the PagedArray object with the lattice file.

This function is only useful if no read-locking is used, ie. if the table lock option is UserNoReadLocking or AutoNoReadLocking. In that cases the table system does not acquire a read-lock, thus does not synchronize itself automatically.

Reimplemented from casacore::LatticeBase.

virtual void casacore::LatticeRegion::set ( const Bool value)
virtual

The following "put" functions are described in detail in class Lattice.

They'll throw an exception is no mask is available or if the mask is not writable.

Reimplemented from casacore::Lattice< Bool >.

virtual void casacore::LatticeRegion::setCacheSizeFromPath ( const IPosition sliceShape,
const IPosition windowStart,
const IPosition windowLength,
const IPosition axisPath 
)
virtual

Set the cache size as to "fit" the indicated path.

Reimplemented from casacore::LatticeBase.

virtual void casacore::LatticeRegion::setCacheSizeInTiles ( uInt  howManyTiles)
virtual

Set the actual cache size for this Array to be be big enough for the indicated number of tiles.

This cache is not shared with PagedArrays in other rows and is always clipped to be less than the maximum value set using the setMaximumCacheSize member function. tiles. Tiles are cached using a first in first out algorithm.

Reimplemented from casacore::LatticeBase.

virtual void casacore::LatticeRegion::setMaximumCacheSize ( uInt  howManyPixels)
virtual

Set the maximum (allowed) cache size as indicated.

Reimplemented from casacore::LatticeBase.

virtual IPosition casacore::LatticeRegion::shape ( ) const
virtual

Returns the shape of the LatticeRegion including all degenerate axes (i.e.

axes with a length of one).

Implements casacore::LatticeBase.

virtual void casacore::LatticeRegion::showCacheStatistics ( ostream &  os) const
virtual

Report on cache success.

Reimplemented from casacore::LatticeBase.

const Slicer & casacore::LatticeRegion::slicer ( ) const
inline

Get the Slicer object describing the region.

Note that it may contain strides.

Definition at line 244 of file LatticeRegion.h.

References itsSlicer.

virtual void casacore::LatticeRegion::tempClose ( )
virtual

Temporarily close the lattice.

It will be reopened automatically on the next access.

Reimplemented from casacore::LatticeBase.

virtual void casacore::LatticeRegion::unlock ( )
virtual

Reimplemented from casacore::LatticeBase.

Member Data Documentation

Bool casacore::LatticeRegion::itsHasRegionMask
private

Definition at line 232 of file LatticeRegion.h.

Referenced by hasMask().

LCRegion* casacore::LatticeRegion::itsRegion
private

Definition at line 230 of file LatticeRegion.h.

Referenced by region().

Slicer casacore::LatticeRegion::itsSlicer
private

Definition at line 231 of file LatticeRegion.h.

Referenced by slicer().


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