casacore::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 can be defined from an Slicer 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 84 of file LCSlicer.h.


Constructor & Destructor Documentation

casacore::LCSlicer::LCSlicer (  ) 
casacore::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.
For each axis (or all axes) it can be defined if the blc/trc are given as pixel coordinates or as fractional values between 0 and 1. In the latter case the true pixel coordinate is derived from the image shape.
Also the region type can be given, if needed per axis.

casacore::LCSlicer::LCSlicer ( const Vector< Float > &  blc,
const Vector< Float > &  trc,
const Vector< Float > &  inc,
Bool  fractionalBlcTrc = False,
RegionType::AbsRelType  = RegionType::Abs 
)
casacore::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 
)
casacore::LCSlicer::LCSlicer ( const Vector< Double > &  blc,
const Vector< Double > &  trc,
Bool  fractionalBlcTrc = False,
RegionType::AbsRelType  = RegionType::Abs 
)
casacore::LCSlicer::LCSlicer ( const Vector< Double > &  blc,
const Vector< Double > &  trc,
const Vector< Double > &  inc,
Bool  fractionalBlcTrc = False,
RegionType::AbsRelType  = RegionType::Abs 
)
casacore::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 
)
casacore::LCSlicer::LCSlicer ( const Slicer slicer  ) 
casacore::LCSlicer::LCSlicer ( const IPosition blc,
const IPosition trc,
RegionType::AbsRelType  = RegionType::Abs 
)
casacore::LCSlicer::LCSlicer ( const IPosition blc,
const IPosition trc,
const IPosition inc,
RegionType::AbsRelType  = RegionType::Abs 
)
casacore::LCSlicer::LCSlicer ( const IPosition blc,
const IPosition trc,
const IPosition inc,
const Vector< Int > &  absRelBlc,
const Vector< Int > &  absRelTrc 
)
casacore::LCSlicer::LCSlicer ( const LCSlicer other  ) 

Copy constructor (reference semantics).

casacore::LCSlicer::~LCSlicer (  ) 

Member Function Documentation

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

Simple accessor functions.

Definition at line 254 of file LCSlicer.h.

References itsBlc.

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

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

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

Get or set the comment.

Definition at line 282 of file LCSlicer.h.

References itsComment.

void casacore::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 casacore::LCSlicer::fillFlags ( Bool  fractional,
Int  absRel,
uInt  nrblc,
uInt  nrtrc,
uInt  nrinc 
) [private]

Fill the pixel based flags from the general ones.

void casacore::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 casacore::LCSlicer::fillFromIPosition ( const IPosition blc,
const IPosition trc,
const IPosition inc 
) [private]

Fill the vectors from the values given as IPositions.

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

Convert to correct object from a record.

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

Definition at line 262 of file LCSlicer.h.

References itsInc.

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

Definition at line 270 of file LCSlicer.h.

References itsIsAbsolute.

Bool casacore::LCSlicer::isComplete (  )  const

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

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

Definition at line 266 of file LCSlicer.h.

References itsIsFractional.

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

Definition at line 278 of file LCSlicer.h.

References itsIsStrided.

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

Definition at line 274 of file LCSlicer.h.

References itsIsUnspecified.

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

Get the dimensionality of the region.

Definition at line 250 of file LCSlicer.h.

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

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

Definition at line 246 of file LCSlicer.h.

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

Assignment (copy semantics).

Bool casacore::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 casacore::LCSlicer::setComment ( const String comment  )  [inline]

Definition at line 286 of file LCSlicer.h.

References itsComment.

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

Convert the object to a record.

Slicer casacore::LCSlicer::toSlicer ( const Vector< Float > &  referencePixel,
const IPosition newLatticeShape 
) const
Slicer casacore::LCSlicer::toSlicer ( const Vector< Double > &  referencePixel,
const IPosition latticeShape 
) const
Slicer casacore::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.

const Vector< Float > & casacore::LCSlicer::trc (  )  const [inline]

Definition at line 258 of file LCSlicer.h.

References itsTrc.

String casacore::LCSlicer::type (  )  const

Get the region type.

Returns className().


Member Data Documentation

Definition at line 236 of file LCSlicer.h.

Definition at line 237 of file LCSlicer.h.

Definition at line 230 of file LCSlicer.h.

Referenced by blc(), and ndim().

Definition at line 242 of file LCSlicer.h.

Referenced by comment(), and setComment().

Definition at line 233 of file LCSlicer.h.

Definition at line 235 of file LCSlicer.h.

Definition at line 234 of file LCSlicer.h.

Definition at line 232 of file LCSlicer.h.

Referenced by inc().

Definition at line 239 of file LCSlicer.h.

Referenced by isAbsolute().

Definition at line 238 of file LCSlicer.h.

Referenced by isFractional().

Definition at line 241 of file LCSlicer.h.

Referenced by isStrided().

Definition at line 240 of file LCSlicer.h.

Referenced by isUnspecified().

Definition at line 231 of file LCSlicer.h.

Referenced by trc().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1