LCUnion.h
Classes
- LCUnion -- Make the union of 2 or more regions. (full description)
Interface
- Public Members
- LCUnion()
- LCUnion (const LCRegion& region1, const LCRegion& region2)
- LCUnion (Bool takeOver, const LCRegion* region1, const LCRegion* region2 = 0, const LCRegion* region3 = 0, const LCRegion* region4 = 0, const LCRegion* region5 = 0, const LCRegion* region6 = 0, const LCRegion* region7 = 0, const LCRegion* region8 = 0, const LCRegion* region9 = 0, const LCRegion* region10 = 0)
- LCUnion (Bool takeOver, const PtrBlock<const LCRegion*>& regions)
- LCUnion (const LCUnion& other)
- virtual ~LCUnion()
- LCUnion& operator= (const LCUnion& other)
- virtual Bool operator== (const LCRegion& other) const
- virtual LCRegion* cloneRegion() const
- static String className()
- virtual String type() const
- virtual TableRecord toRecord (const String& tableName) const
- static LCUnion* 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)
- Private Members
- void defineBox()
Prerequisite
Synopsis
The LCUnion 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.
includes the union border.
It can only be used for a lattice of any dimensionality as long as the
dimensionality of the (hyper-)union matches the dimensionality of
the lattice.
The center of the union must be inside the lattice
Example
To Do
- Expand along (slanted) cone lines
Member Description
Construct the union of the given regions.
LCUnion (Bool takeOver, const LCRegion* region1, const LCRegion* region2 = 0, const LCRegion* region3 = 0, const LCRegion* region4 = 0, const LCRegion* region5 = 0, const LCRegion* region6 = 0, const LCRegion* region7 = 0, const LCRegion* region8 = 0, const LCRegion* region9 = 0, const LCRegion* region10 = 0)
LCUnion (Bool takeOver, const PtrBlock<const LCRegion*>& regions)
Construct from multiple regions.
When takeOver is True, the destructor will delete the
given regions. Otherwise a copy of the regions is made.
LCUnion (const LCUnion& other)
Copy constructor (copy semantics).
LCUnion& operator= (const LCUnion& other)
Assignment (copy semantics).
Comparison
Make a copy of the derived object.
Get the class name (to store in the record).
Get the region type. Returns className()
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.
Make the bounding box and determine the offsets.