LCSlicer.h
Classes
- LCSlicer -- Class to define a rectangular box of interest with strides. (full description)
Interface
- Public Members
- LCSlicer()
- LCSlicer (const Vector<Float>& blc, const Vector<Float>& trc, Bool fractionalBlcTrc = False, RegionType::AbsRelType = RegionType::Abs)
- 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)
- ~LCSlicer()
- LCSlicer& operator= (const LCSlicer& other)
- Bool operator== (const LCSlicer& other) const
- Bool operator!= (const LCSlicer& other) const
- Bool isComplete() const
- uInt ndim() const
- const Vector<Float>& blc() const
- const Vector<Float>& trc() const
- const Vector<Float>& inc() const
- Bool isFractional() const
- Bool isAbsolute() const
- Bool isUnspecified() const
- Bool isStrided() const
- static String className()
- String type() const
- const String& comment() const
- void setComment (const String& comment)
- Slicer toSlicer (const IPosition& referencePixel, const IPosition& latticeShape) const
- 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
- static LCSlicer* fromRecord (const TableRecord&, const String& tablename)
- Private Members
- void fillFlags (Bool fractional, Int absRel, uInt nrblc, uInt nrtrc, uInt nrinc)
- void fillFromDouble (const Vector<Double>& blc, const Vector<Double>& trc, const Vector<Double>& inc)
- void fillFromIPosition (const IPosition& blc, const IPosition& trc, const IPosition& inc)
- void fill()
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
To Do
Member Description
LCSlicer (const Vector<Float>& blc, const Vector<Float>& trc, Bool fractionalBlcTrc = False, RegionType::AbsRelType = RegionType::Abs)
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)
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.
LCSlicer (const LCSlicer& other)
Copy constructor (reference semantics).
LCSlicer& operator= (const LCSlicer& other)
Assignment (copy semantics).
Bool operator== (const LCSlicer& other) const
Bool 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.
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.
Simple accessor functions.
Get the class name (to store in the record).
Get the region type. Returns className().
Get or set the comment.
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.
Convert the object to a record.
Convert to correct object from a record.
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.
Fill the vectors from the values given as IPositions..
Fill the remaining variables.
It also adjust the lengths of the vectors if they are different.
Check if everything is given correctly.