Class to define an n-dimensional ellipsoid in world coordinates. More...
#include <WCEllipsoid.h>
Public Member Functions | |
WCEllipsoid (const Vector< Quantity > ¢er, const Vector< Quantity > &radii, const IPosition &pixelAxes, const CoordinateSystem &cSys, const RegionType::AbsRelType absRel=RegionType::Abs) | |
ellipsoid with axes parallel to coordinate axes | |
WCEllipsoid (const Vector< Quantity > ¢er, const Quantity &radius, const IPosition &pixelAxes, const CoordinateSystem &cSys, const RegionType::AbsRelType absRel=RegionType::Abs) | |
sphere. | |
WCEllipsoid (const Quantity &xcenter, const Quantity &ycenter, const Quantity &majorAxis, const Quantity &minorAxis, const Quantity &theta, const uInt pixelAxis0, const uInt pixelAxis1, const CoordinateSystem &cSys, const RegionType::AbsRelType absRel=RegionType::Abs) | |
2-D ellipse . | |
WCEllipsoid (const WCEllipsoid &that) | |
WCEllipsoid & | operator= (const WCEllipsoid &that) |
Assignment (copy semantics) makes only sense for a derived class. | |
Bool | operator== (const WCRegion &other) const |
WCRegion * | cloneRegion () const |
Clone a WCRegion object. | |
Bool | canExtend () const |
Can the region extend itself? By default it cannot. | |
String | type () const |
Return region type. | |
TableRecord | toRecord (const String &tableName) const |
Convert the (derived) object to a record. | |
LCRegion * | doToLCRegion (const CoordinateSystem &csys, const IPosition &latticeShape, const IPosition &pixelAxesMap, const IPosition &outOrder) const |
Convert to an LCRegion using the given coordinate system and shape. | |
Static Public Member Functions | |
static String | className () |
static WCEllipsoid * | fromRecord (const TableRecord &rec, const String &) |
Convert correct object from a record. | |
Private Types | |
enum | SpecialType { NOT_SPECIAL, SPHERE, ELLIPSE_2D } |
WARN do not change the order of the members of this enum or you will break backward compatibility with records previously saved persistently. More... | |
Private Member Functions | |
WCEllipsoid () | |
void | _checkPixelAxes () const |
void | _checkUnits () const |
void | _init () |
Private Attributes | |
Vector< Quantity > | _center |
Vector< Quantity > | _radii |
IPosition | _pixelAxes |
CoordinateSystem | _csys |
RegionType::AbsRelType | _absRel |
Quantity | _theta |
SpecialType | _specType |
Class to define an n-dimensional ellipsoid in world coordinates.
Public interface
Users must be able to specify ellipsoids in world as well as lattice coordinates.
Definition at line 71 of file WCEllipsoid.h.
enum casacore::WCEllipsoid::SpecialType [private] |
WARN do not change the order of the members of this enum or you will break backward compatibility with records previously saved persistently.
Add new types to the end of the enum.
Definition at line 140 of file WCEllipsoid.h.
casacore::WCEllipsoid::WCEllipsoid | ( | const Vector< Quantity > & | center, | |
const Vector< Quantity > & | radii, | |||
const IPosition & | pixelAxes, | |||
const CoordinateSystem & | cSys, | |||
const RegionType::AbsRelType | absRel = RegionType::Abs | |||
) |
ellipsoid with axes parallel to coordinate axes
casacore::WCEllipsoid::WCEllipsoid | ( | const Vector< Quantity > & | center, | |
const Quantity & | radius, | |||
const IPosition & | pixelAxes, | |||
const CoordinateSystem & | cSys, | |||
const RegionType::AbsRelType | absRel = RegionType::Abs | |||
) |
sphere.
pixelAxes
must have the same base units and those pixels musb be square or an exception is thrown.
casacore::WCEllipsoid::WCEllipsoid | ( | const Quantity & | xcenter, | |
const Quantity & | ycenter, | |||
const Quantity & | majorAxis, | |||
const Quantity & | minorAxis, | |||
const Quantity & | theta, | |||
const uInt | pixelAxis0, | |||
const uInt | pixelAxis1, | |||
const CoordinateSystem & | cSys, | |||
const RegionType::AbsRelType | absRel = RegionType::Abs | |||
) |
2-D ellipse .
The axes must have the same base units and those pixels must be square or an exception is thrown. theta
is the angle between the pixelAxis0
and the major axis of the ellipse.
casacore::WCEllipsoid::WCEllipsoid | ( | const WCEllipsoid & | that | ) |
casacore::WCEllipsoid::WCEllipsoid | ( | ) | [private] |
void casacore::WCEllipsoid::_checkPixelAxes | ( | ) | const [private] |
void casacore::WCEllipsoid::_checkUnits | ( | ) | const [private] |
void casacore::WCEllipsoid::_init | ( | ) | [private] |
Bool casacore::WCEllipsoid::canExtend | ( | ) | const [virtual] |
Can the region extend itself? By default it cannot.
Reimplemented from casacore::WCRegion.
static String casacore::WCEllipsoid::className | ( | ) | [static] |
WCRegion* casacore::WCEllipsoid::cloneRegion | ( | ) | const [virtual] |
Clone a WCRegion object.
Implements casacore::WCRegion.
LCRegion* casacore::WCEllipsoid::doToLCRegion | ( | const CoordinateSystem & | cSys, | |
const IPosition & | shape, | |||
const IPosition & | pixelAxesMap, | |||
const IPosition & | extendAxes | |||
) | const [virtual] |
Convert to an LCRegion using the given coordinate system and shape.
pixelAxesMap(i) is the axis in cSys and shape for region axis i.
outOrder(i) is the axis in the output LCRegion for region axis i.
They always have the same length. If the region can extend itself, the length of pixelAxesMap and outOrder can be more than the dimensionality of the region. The latter axes in them are the extension axes.
Implements casacore::WCRegion.
static WCEllipsoid* casacore::WCEllipsoid::fromRecord | ( | const TableRecord & | rec, | |
const String & | tableName | |||
) | [static] |
Convert correct object from a record.
Reimplemented from casacore::WCRegion.
WCEllipsoid& casacore::WCEllipsoid::operator= | ( | const WCEllipsoid & | other | ) |
Assignment (copy semantics) makes only sense for a derived class.
Reimplemented from casacore::WCRegion.
TableRecord casacore::WCEllipsoid::toRecord | ( | const String & | tableName | ) | const [virtual] |
Convert the (derived) object to a record.
The record can be used to make the object persistent. The tableName
argument can be used by derived classes (e.g. LCPagedMask) to put very large objects.
Implements casacore::WCRegion.
String casacore::WCEllipsoid::type | ( | ) | const [virtual] |
Return region type.
Just returns the class name of the derived class.
Implements casacore::WCRegion.
Definition at line 153 of file WCEllipsoid.h.
Vector<Quantity> casacore::WCEllipsoid::_center [private] |
Definition at line 148 of file WCEllipsoid.h.
CoordinateSystem casacore::WCEllipsoid::_csys [private] |
Definition at line 152 of file WCEllipsoid.h.
IPosition casacore::WCEllipsoid::_pixelAxes [private] |
Definition at line 151 of file WCEllipsoid.h.
Vector<Quantity> casacore::WCEllipsoid::_radii [private] |
Definition at line 149 of file WCEllipsoid.h.
SpecialType casacore::WCEllipsoid::_specType [private] |
Definition at line 155 of file WCEllipsoid.h.
Quantity casacore::WCEllipsoid::_theta [private] |
Definition at line 154 of file WCEllipsoid.h.