casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
casa::LCSlicer Class Reference

Class to define a rectangular box of interest with strides. More...

#include <LCSlicer.h>

List of all members.

Public Member Functions

 LCSlicer ()
 LCSlicer (const Vector< Float > &blc, const Vector< Float > &trc, Bool fractionalBlcTrc=False, RegionType::AbsRelType=RegionType::Abs)
 Construct a slicer from the blc, trc, and stride (default 1).
 LCSlicer (const Vector< Float > &blc, const Vector< Float > &trc, const Vector< Float > &inc, Bool fractionalBlcTrc=False, RegionType::AbsRelType=RegionType::Abs)
 LCSlicer (const Vector< Float > &blc, const Vector< Float > &trc, const Vector< Float > &inc, const Vector< Bool > &fractionalBlc, const Vector< Bool > &fractionalTrc, const Vector< Bool > &fractionalInc, const Vector< Int > &absRelBlc, const Vector< Int > &absRelTrc)
 LCSlicer (const Vector< Double > &blc, const Vector< Double > &trc, Bool fractionalBlcTrc=False, RegionType::AbsRelType=RegionType::Abs)
 LCSlicer (const Vector< Double > &blc, const Vector< Double > &trc, const Vector< Double > &inc, Bool fractionalBlcTrc=False, RegionType::AbsRelType=RegionType::Abs)
 LCSlicer (const Vector< Double > &blc, const Vector< Double > &trc, const Vector< Double > &inc, const Vector< Bool > &fractionalBlc, const Vector< Bool > &fractionalTrc, const Vector< Bool > &fractionalInc, const Vector< Int > &absRelBlc, const Vector< Int > &absRelTrc)
 LCSlicer (const Slicer &slicer)
 LCSlicer (const IPosition &blc, const IPosition &trc, RegionType::AbsRelType=RegionType::Abs)
 LCSlicer (const IPosition &blc, const IPosition &trc, const IPosition &inc, RegionType::AbsRelType=RegionType::Abs)
 LCSlicer (const IPosition &blc, const IPosition &trc, const IPosition &inc, const Vector< Int > &absRelBlc, const Vector< Int > &absRelTrc)
 LCSlicer (const LCSlicer &other)
 Copy constructor (reference semantics).
 ~LCSlicer ()
LCSliceroperator= (const LCSlicer &other)
 Assignment (copy semantics).
Bool operator== (const LCSlicer &other) const
 Test for equality.
Bool operator!= (const LCSlicer &other) const
Bool isComplete () const
 The region is completely specified if it is absolute, not fractional, and has no unspecified values.
uInt ndim () const
 Get the dimensionality of the region.
const Vector< Float > & blc () const
 Simple accessor functions.
const Vector< Float > & trc () const
const Vector< Float > & inc () const
Bool isFractional () const
Bool isAbsolute () const
Bool isUnspecified () const
Bool isStrided () const
String type () const
 Get the region type.
const Stringcomment () const
 Get or set the comment.
void setComment (const String &comment)
Slicer toSlicer (const IPosition &referencePixel, const IPosition &latticeShape) const
 Make the region complete using the given reference pixel and shape.
Slicer toSlicer (const Vector< Double > &referencePixel, const IPosition &latticeShape) const
Slicer toSlicer (const Vector< Float > &referencePixel, const IPosition &newLatticeShape) const
TableRecord toRecord (const String &tableName) const
 Convert the object to a record.

Static Public Member Functions

static String className ()
 Get the class name (to store in the record).
static LCSlicerfromRecord (const TableRecord &, const String &tablename)
 Convert to correct object from a record.

Private Member Functions

void fillFlags (Bool fractional, Int absRel, uInt nrblc, uInt nrtrc, uInt nrinc)
 Fill the pixel based flags from the general ones.
void fillFromDouble (const Vector< Double > &blc, const Vector< Double > &trc, const Vector< Double > &inc)
 Fill the vectors from the values given as doubles.
void fillFromIPosition (const IPosition &blc, const IPosition &trc, const IPosition &inc)
 Fill the vectors from the values given as IPositions.
void fill ()
 Fill the remaining variables.

Private Attributes

Vector< FloatitsBlc
Vector< FloatitsTrc
Vector< FloatitsInc
Vector< BoolitsFracBlc
Vector< BoolitsFracTrc
Vector< BoolitsFracInc
Vector< IntitsAbsRelBlc
Vector< IntitsAbsRelTrc
Bool itsIsFractional
Bool itsIsAbsolute
Bool itsIsUnspecified
Bool itsIsStrided
String itsComment

Detailed Description

Class to define a rectangular box of interest with strides.

Intended use:

Public interface

Prerequisite

Synopsis

The LCSlicer makes it possible to define a rectangular box with strides. Note that this class is not derived from LCRegion , so it cannot be used in a compound region object like LCUnion . The reason is that strides make it impossible to use a region in a compound.
The slicer region has to be defined from an LCBox object defining the blc/trc and a vector (of the same length) containing the strides. The LCSlicer can be of any type (thus relative, fractional, unspecified), while the strides can be defined as a number or a fraction.
It is also possible to construct it directly from a Slicer object,

Example

Definition at line 83 of file LCSlicer.h.


Constructor & Destructor Documentation

casa::LCSlicer::LCSlicer ( const Vector< Float > &  blc,
const Vector< Float > &  trc,
Bool  fractionalBlcTrc = False,
RegionType::AbsRelType  = RegionType::Abs 
)

Construct a slicer from the blc, trc, and stride (default 1).

The vectors can be different in lengths. The longest determines the dimensionality of the region. The shorter ones get padded with default values.

casa::LCSlicer::LCSlicer ( const Vector< Float > &  blc,
const Vector< Float > &  trc,
const Vector< Float > &  inc,
Bool  fractionalBlcTrc = False,
RegionType::AbsRelType  = RegionType::Abs 
)
casa::LCSlicer::LCSlicer ( const Vector< Float > &  blc,
const Vector< Float > &  trc,
const Vector< Float > &  inc,
const Vector< Bool > &  fractionalBlc,
const Vector< Bool > &  fractionalTrc,
const Vector< Bool > &  fractionalInc,
const Vector< Int > &  absRelBlc,
const Vector< Int > &  absRelTrc 
)
casa::LCSlicer::LCSlicer ( const Vector< Double > &  blc,
const Vector< Double > &  trc,
Bool  fractionalBlcTrc = False,
RegionType::AbsRelType  = RegionType::Abs 
)
casa::LCSlicer::LCSlicer ( const Vector< Double > &  blc,
const Vector< Double > &  trc,
const Vector< Double > &  inc,
Bool  fractionalBlcTrc = False,
RegionType::AbsRelType  = RegionType::Abs 
)
casa::LCSlicer::LCSlicer ( const Vector< Double > &  blc,
const Vector< Double > &  trc,
const Vector< Double > &  inc,
const Vector< Bool > &  fractionalBlc,
const Vector< Bool > &  fractionalTrc,
const Vector< Bool > &  fractionalInc,
const Vector< Int > &  absRelBlc,
const Vector< Int > &  absRelTrc 
)
casa::LCSlicer::LCSlicer ( const Slicer slicer)
casa::LCSlicer::LCSlicer ( const IPosition blc,
const IPosition trc,
const IPosition inc,
RegionType::AbsRelType  = RegionType::Abs 
)
casa::LCSlicer::LCSlicer ( const IPosition blc,
const IPosition trc,
const IPosition inc,
const Vector< Int > &  absRelBlc,
const Vector< Int > &  absRelTrc 
)
casa::LCSlicer::LCSlicer ( const LCSlicer other)

Copy constructor (reference semantics).


Member Function Documentation

const Vector< Float > & casa::LCSlicer::blc ( ) const [inline]

Simple accessor functions.

Definition at line 244 of file LCSlicer.h.

References itsBlc.

static String casa::LCSlicer::className ( ) [static]

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

const String & casa::LCSlicer::comment ( ) const [inline]

Get or set the comment.

Definition at line 272 of file LCSlicer.h.

References itsComment.

Referenced by setComment().

void casa::LCSlicer::fill ( ) [private]

Fill the remaining variables.

It also adjust the lengths of the vectors if they are different. Check if everything is given correctly.

void casa::LCSlicer::fillFlags ( Bool  fractional,
Int  absRel,
uInt  nrblc,
uInt  nrtrc,
uInt  nrinc 
) [private]

Fill the pixel based flags from the general ones.

void casa::LCSlicer::fillFromDouble ( const Vector< Double > &  blc,
const Vector< Double > &  trc,
const Vector< Double > &  inc 
) [private]

Fill the vectors from the values given as doubles.

void casa::LCSlicer::fillFromIPosition ( const IPosition blc,
const IPosition trc,
const IPosition inc 
) [private]

Fill the vectors from the values given as IPositions.

static LCSlicer* casa::LCSlicer::fromRecord ( const TableRecord ,
const String tablename 
) [static]

Convert to correct object from a record.

const Vector< Float > & casa::LCSlicer::inc ( ) const [inline]

Definition at line 252 of file LCSlicer.h.

References itsInc.

Bool casa::LCSlicer::isAbsolute ( ) const [inline]

Definition at line 260 of file LCSlicer.h.

References itsIsAbsolute.

The region is completely specified if it is absolute, not fractional, and has no unspecified values.

Bool casa::LCSlicer::isFractional ( ) const [inline]

Definition at line 256 of file LCSlicer.h.

References itsIsFractional.

Bool casa::LCSlicer::isStrided ( ) const [inline]

Definition at line 268 of file LCSlicer.h.

References itsIsStrided.

Bool casa::LCSlicer::isUnspecified ( ) const [inline]

Definition at line 264 of file LCSlicer.h.

References itsIsUnspecified.

uInt casa::LCSlicer::ndim ( ) const [inline]

Get the dimensionality of the region.

Definition at line 240 of file LCSlicer.h.

References itsBlc, and casa::ArrayBase::nelements().

Bool casa::LCSlicer::operator!= ( const LCSlicer other) const [inline]

Definition at line 236 of file LCSlicer.h.

LCSlicer& casa::LCSlicer::operator= ( const LCSlicer other)

Assignment (copy semantics).

Bool casa::LCSlicer::operator== ( const LCSlicer other) const

Test for equality.

True is returned when the given region is a slicer with exactly the same specification as this slicer. It does not compare the comment.

void casa::LCSlicer::setComment ( const String comment) [inline]

Definition at line 276 of file LCSlicer.h.

References comment(), and itsComment.

TableRecord casa::LCSlicer::toRecord ( const String tableName) const

Convert the object to a record.

Slicer casa::LCSlicer::toSlicer ( const IPosition referencePixel,
const IPosition latticeShape 
) const

Make the region complete using the given reference pixel and shape.

It returns a new region where the relative regions are made absolute by translating them with respect to the reference pixel. Furthermore unspecified values are filled in and fractional values are turned into absolute ones.

Slicer casa::LCSlicer::toSlicer ( const Vector< Double > &  referencePixel,
const IPosition latticeShape 
) const
Slicer casa::LCSlicer::toSlicer ( const Vector< Float > &  referencePixel,
const IPosition newLatticeShape 
) const
const Vector< Float > & casa::LCSlicer::trc ( ) const [inline]

Definition at line 248 of file LCSlicer.h.

References itsTrc.

Get the region type.

Returns className().


Member Data Documentation

Definition at line 226 of file LCSlicer.h.

Definition at line 227 of file LCSlicer.h.

Definition at line 220 of file LCSlicer.h.

Referenced by blc(), and ndim().

Definition at line 232 of file LCSlicer.h.

Referenced by comment(), and setComment().

Definition at line 223 of file LCSlicer.h.

Definition at line 225 of file LCSlicer.h.

Definition at line 224 of file LCSlicer.h.

Definition at line 222 of file LCSlicer.h.

Referenced by inc().

Definition at line 229 of file LCSlicer.h.

Referenced by isAbsolute().

Definition at line 228 of file LCSlicer.h.

Referenced by isFractional().

Definition at line 231 of file LCSlicer.h.

Referenced by isStrided().

Definition at line 230 of file LCSlicer.h.

Referenced by isUnspecified().

Definition at line 221 of file LCSlicer.h.

Referenced by trc().


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