LCExtension.h
Classes
- LCExtension -- Extend an LCRegion along straight lines to other dimensions (full description)
Interface
- Public Members
- LCExtension()
- LCExtension (const LCRegion& region, const IPosition& extendAxes, const LCBox& extendBox)
- LCExtension (Bool takeOver, const LCRegion* region, const IPosition& extendAxes, const LCBox& extendBox)
- LCExtension (const LCExtension& other)
- virtual ~LCExtension()
- LCExtension& operator= (const LCExtension& other)
- virtual Bool operator== (const LCRegion& other) const
- virtual LCRegion* cloneRegion() const
- const LCRegion& region() const
- const IPosition& extendAxes() const
- const LCBox& extendBox() const
- static String className()
- virtual String type() const
- virtual TableRecord toRecord (const String& tableName) const
- static LCExtension* fromRecord (const TableRecord&, const String& tableName)
- Protected Members
- virtual LCRegion* doTranslate (const Vector<Float>& translateVector, const IPosition& newLatticeShape) const
- virtual void multiGetSlice (Array<Bool>& buffer, const Slicer& section)
- virtual IPosition doNiceCursorShape (uInt maxPixels) const
- Private Members
- void fillRegionAxes()
- void fill (const IPosition& stretchAxes, const LCBox& stretchBox)
Prerequisite
Synopsis
The LCExtension class is a specialization of class
LCRegion.
It makes it possible to extend a LCRegion along straight lines to
other dimensions. E.g. a circle in the xy-plane can be extended to
a cylinder in the xyz-space.
It can be used for a lattice of any dimensionality as long as the
dimensionality of the (hyper-)extension matches the dimensionality of
the lattice.
Example
To Do
- Extend along (slanted) cone lines
Member Description
Extend the given region along axes as given by extendAxes
from the bottom left corner (blc) to the top right corner (trc)
as given by extendBox.
Every kind of box (absolute, relative, fractional, unspecified)
can be used to define the extension blc and trc.
The sum of the dimensionality of the region and the extend box
make up the dimensionality of the LCExtension region.
Similarly the lattice shapes in region and box are combined.
The second version takes over the pointer when the switch is true.
LCExtension (const LCExtension& other)
Copy constructor (copy semantics).
LCExtension& operator= (const LCExtension& other)
Assignment (copy semantics).
Comparison
Make a copy of the derived object.
Get the original region.
Get the extend axes.
Get the extend box.
Get the class name (to store in the record).
Get the region type. Returns the class name.
Convert the (derived) object to a record.
Convert correct object from a record.
virtual LCRegion* doTranslate (const Vector<Float>& translateVector, const IPosition& newLatticeShape) const
Construct another LCRegion (for e.g. another lattice) by moving
this one. It recalculates the bounding box and mask.
A positive translation value indicates "to right".
Do the actual getting of the mask.
This function is needed here because the niceCursorShape of the
contributing region does not make any sense (other dimensionality).
Fill the object.