casacore
|
Class to define a rectangular box of interest with strides. More...
#include <LCSlicer.h>
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). More... | |
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). More... | |
~LCSlicer () | |
LCSlicer & | operator= (const LCSlicer &other) |
Assignment (copy semantics). More... | |
Bool | operator== (const LCSlicer &other) const |
Test for equality. More... | |
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. More... | |
uInt | ndim () const |
Get the dimensionality of the region. More... | |
const Vector< Float > & | blc () const |
Simple accessor functions. More... | |
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. More... | |
const String & | comment () const |
Get or set the comment. More... | |
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. More... | |
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. More... | |
Static Public Member Functions | |
static String | className () |
Get the class name (to store in the record). More... | |
static LCSlicer * | fromRecord (const TableRecord &, const String &tablename) |
Convert to correct object from a record. More... | |
Private Member Functions | |
void | fillFlags (Bool fractional, Int absRel, uInt nrblc, uInt nrtrc, uInt nrinc) |
Fill the pixel based flags from the general ones. More... | |
void | fillFromDouble (const Vector< Double > &blc, const Vector< Double > &trc, const Vector< Double > &inc) |
Fill the vectors from the values given as doubles. More... | |
void | fillFromIPosition (const IPosition &blc, const IPosition &trc, const IPosition &inc) |
Fill the vectors from the values given as IPositions. More... | |
void | fill () |
Fill the remaining variables. More... | |
Private Attributes | |
Vector< Float > | itsBlc |
Vector< Float > | itsTrc |
Vector< Float > | itsInc |
Vector< Bool > | itsFracBlc |
Vector< Bool > | itsFracTrc |
Vector< Bool > | itsFracInc |
Vector< Int > | itsAbsRelBlc |
Vector< Int > | itsAbsRelTrc |
Bool | itsIsFractional |
Bool | itsIsAbsolute |
Bool | itsIsUnspecified |
Bool | itsIsStrided |
String | itsComment |
Class to define a rectangular box of interest with strides.
Public interface
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,
Definition at line 84 of file LCSlicer.h.
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 | ( | ) |
|
static |
Get the class name (to store in the record).
|
inline |
Get or set the comment.
Definition at line 282 of file LCSlicer.h.
References itsComment.
Referenced by setComment().
|
private |
Fill the remaining variables.
It also adjust the lengths of the vectors if they are different. Check if everything is given correctly.
|
private |
Fill the pixel based flags from the general ones.
|
private |
Fill the vectors from the values given as doubles.
|
private |
Fill the vectors from the values given as IPositions.
|
static |
Convert to correct object from a record.
Definition at line 262 of file LCSlicer.h.
References itsInc.
|
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.
|
inline |
Definition at line 266 of file LCSlicer.h.
References itsIsFractional.
|
inline |
Definition at line 278 of file LCSlicer.h.
References itsIsStrided.
|
inline |
Definition at line 274 of file LCSlicer.h.
References itsIsUnspecified.
|
inline |
Get the dimensionality of the region.
Definition at line 250 of file LCSlicer.h.
References itsBlc, and casacore::ArrayBase::nelements().
Definition at line 246 of file LCSlicer.h.
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.
|
inline |
Definition at line 286 of file LCSlicer.h.
References comment(), and itsComment.
TableRecord casacore::LCSlicer::toRecord | ( | const String & | tableName | ) | const |
Convert the object to a record.
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.
Slicer casacore::LCSlicer::toSlicer | ( | const Vector< Double > & | referencePixel, |
const IPosition & | latticeShape | ||
) | const |
Slicer casacore::LCSlicer::toSlicer | ( | const Vector< Float > & | referencePixel, |
const IPosition & | newLatticeShape | ||
) | const |
Definition at line 258 of file LCSlicer.h.
References itsTrc.
String casacore::LCSlicer::type | ( | ) | const |
Get the region type.
Returns className().
Definition at line 236 of file LCSlicer.h.
Definition at line 237 of file LCSlicer.h.
Definition at line 230 of file LCSlicer.h.
|
private |
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().
|
private |
Definition at line 239 of file LCSlicer.h.
Referenced by isAbsolute().
|
private |
Definition at line 238 of file LCSlicer.h.
Referenced by isFractional().
|
private |
Definition at line 241 of file LCSlicer.h.
Referenced by isStrided().
|
private |
Definition at line 240 of file LCSlicer.h.
Referenced by isUnspecified().
Definition at line 231 of file LCSlicer.h.
Referenced by trc().