casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casa::AnnEllipse Class Reference

This class represents an annotation of an elliptical (in position coordinates) region specified in an ascii region file as proposed in CAS-2285. It is specified by its center position semi-major and semi-minor axes, and position angle. <author>Dave Mehringer</author> More...

#include <AnnEllipse.h>

Inheritance diagram for casa::AnnEllipse:
casa::AnnRegion casa::AnnotationBase

Public Member Functions

 AnnEllipse (const casacore::Quantity &xcenter, const casacore::Quantity &ycenter, const casacore::Quantity &semiMajorAxis, const casacore::Quantity &semiMinorAxis, const casacore::Quantity &positionAngle, const casacore::String &dirRefFrameString, const casacore::CoordinateSystem &csys, const casacore::IPosition &imShape, const casacore::Quantity &beginFreq, const casacore::Quantity &endFreq, const casacore::String &freqRefFrameString, const casacore::String &dopplerString, const casacore::Quantity &restfreq, const casacore::Vector< casacore::Stokes::StokesTypes > stokes, const casacore::Bool annotationOnly, const casacore::Bool requireImageRegion=true)
 positionAngle is defined as the angle between north and the ellipse major axis. More...
 
 AnnEllipse (const casacore::Quantity &xcenter, const casacore::Quantity &ycenter, const casacore::Quantity &semiMajorAxis, const casacore::Quantity &semiMinorAxis, const casacore::Quantity &positionAngle, const casacore::CoordinateSystem &csys, const casacore::IPosition &imShape, const casacore::Vector< casacore::Stokes::StokesTypes > &stokes, const casacore::Bool requireImageRegion=true)
 Simplified constructor. More...
 
AnnEllipseoperator= (const AnnEllipse &other)
 implicit copy constructor and destructor are fine More...
 
casacore::Bool operator== (const AnnEllipse &other) const
 
casacore::MDirection getCenter () const
 Get the center position, tranformed to the reference from of the coordinate system if necessary. More...
 
casacore::Quantity getSemiMajorAxis () const
 get semi-major axis. More...
 
casacore::Quantity getSemiMinorAxis () const
 get semi-minor axis. More...
 
casacore::Quantity getPositionAngle () const
 get position angle. More...
 
virtual std::ostream & print (std::ostream &os) const
 
- Public Member Functions inherited from casa::AnnRegion
virtual ~AnnRegion ()
 
void setAnnotationOnly (const casacore::Bool isAnnotationOnly)
 
casacore::Bool isAnnotationOnly () const
 is this region an annotation only? ie just for graphical rendering? More...
 
virtual casacore::TableRecord asRecord () const
 
virtual casacore::ImageRegion asImageRegion () const
 
virtual casacore::CountedPtr
< const casacore::WCRegion
getRegion () const
 this version is deprecated, use the version that returns std::shared_ptr instead More...
 
virtual std::shared_ptr< const
casacore::WCRegion
getRegion2 () const
 
virtual casacore::Bool isRegion () const
 returns true unless overridden. More...
 
void setDifference (const casacore::Bool difference)
 
casacore::Bool isDifference () const
 
std::vector< casacore::DoublegetSpectralPixelRange () const
 get the pixel range included in the spectral selection. More...
 
casacore::Bool setFrequencyLimits (const casacore::Quantity &beginFreq, const casacore::Quantity &endFreq, const casacore::String &freqRefFrame, const casacore::String &dopplerString, const casacore::Quantity &restfreq)
 if freqRefFrame=="" -> use the reference frame of the coordinate system if dopplerString=="" -> use the doppler system associated with the coordinate system if restfreq=casacore::Quantity(0, "Hz") -> use the rest frequency associated with the coordinate system Tacitly does nothing if the coordinate system has no spectral axis. More...
 
- Public Member Functions inherited from casa::AnnotationBase
virtual ~AnnotationBase ()
 
Type getType () const
 
void setLabel (const casacore::String &label)
 
casacore::String getLabel () const
 
void setColor (const casacore::String &color)
 color must either be a recognized color name or a valid rgb hex string, else an expection is thrown More...
 
void setColor (const RGB &color)
 color must have three elements all with values between 0 and 255 inclusive or an exception is thrown. More...
 
casacore::String getColorString () const
 returns the color name if it is recognized or its rgb hex string More...
 
RGB getColor () const
 get the color associated with this object More...
 
void setLineStyle (const LineStyle lineStyle)
 
LineStyle getLineStyle () const
 
void setLineWidth (const casacore::uInt linewidth)
 
casacore::uInt getLineWidth () const
 
void setSymbolSize (const casacore::uInt symbolsize)
 
casacore::uInt getSymbolSize () const
 
void setSymbolThickness (const casacore::uInt symbolthickness)
 
casacore::uInt getSymbolThickness () const
 
void setFont (const casacore::String &font)
 
casacore::String getFont () const
 
void setFontSize (const casacore::uInt fontsize)
 
casacore::uInt getFontSize () const
 
void setFontStyle (const FontStyle &fontstyle)
 
FontStyle getFontStyle () const
 
void setUseTex (const casacore::Bool usetex)
 
casacore::Bool isUseTex () const
 
void setLabelColor (const casacore::String &color)
 color must either be a recognized color name or a valid rgb hex string, else an expection is thrown More...
 
void setLabelColor (const RGB &color)
 color must have three elements all with values between 0 and 255 inclusive or an exception is thrown. More...
 
casacore::String getLabelColorString () const
 returns the color name if it is recognized or its rgb hex string More...
 
RGB getLabelColor () const
 get the color associated with this object's label More...
 
casacore::String getLabelPosition () const
 returns one of top, bottom, left, or right. More...
 
void setLabelPosition (const casacore::String &position)
 position must have a value in top, bottom, left, or right. More...
 
void setLabelOffset (const std::vector< casacore::Int > &offset)
 offset must have two elements More...
 
std::vector< casacore::IntgetLabelOffset () const
 
void setGlobals (const casacore::Vector< Keyword > &globalKeys)
 These parameters are included at the global scope. More...
 
const casacore::CoordinateSystemgetCsys () const
 get the coordinate system associated with this object. More...
 
Direction getDirections () const
 DEPRECATED Please use getConvertedDirections() the pair elements have longitude as the first member and latitude as the second. More...
 
casacore::Vector
< casacore::MFrequency
getFrequencyLimits () const
 get the frequency limits converted to the spectral frame of the coordinate system of this object. More...
 
casacore::Vector
< casacore::Stokes::StokesTypes
getStokes () const
 Get the stokes for which the selection applies. More...
 
const casacore::Vector
< casacore::MDirection > & 
getConvertedDirections () const
 same as getDirections, only returns proper MDirections More...
 

Private Member Functions

void _init (const casacore::Quantity &xcenter, const casacore::Quantity &ycenter)
 

Private Attributes

AnnotationBase::Direction _inputCenter
 
casacore::Quantity _inputSemiMajorAxis
 
casacore::Quantity _inputSemiMinorAxis
 
casacore::Quantity _inputPositionAngle
 
casacore::Quantity _convertedSemiMajorAxis
 
casacore::Quantity _convertedSemiMinorAxis
 
casacore::Quantity _convertedPositionAngle
 

Additional Inherited Members

- Public Types inherited from casa::AnnotationBase
enum  Type {
  LINE,
  VECTOR,
  TEXT,
  SYMBOL,
  RECT_BOX,
  CENTER_BOX,
  ROTATED_BOX,
  POLYGON,
  POLYLINE,
  CIRCLE,
  ANNULUS,
  ELLIPSE
}
 
enum  Keyword {
  COORD,
  RANGE,
  FRAME,
  CORR,
  VELTYPE,
  RESTFREQ,
  LINEWIDTH,
  LINESTYLE,
  SYMSIZE,
  SYMTHICK,
  COLOR,
  FONT,
  FONTSIZE,
  FONTSTYLE,
  USETEX,
  LABEL,
  LABELCOLOR,
  LABELPOS,
  LABELOFF,
  UNKNOWN_KEYWORD,
  N_KEYS
}
 
enum  LineStyle {
  SOLID,
  DASHED,
  DOT_DASHED,
  DOTTED
}
 
enum  FontStyle {
  NORMAL,
  BOLD,
  ITALIC,
  ITALIC_BOLD
}
 
using RGB = std::vector< float >
 
using Direction = casacore::Vector< std::pair< casacore::Quantity, casacore::Quantity > >
 The pairs have longitude as the first member and latitude as the second. More...
 
- Static Public Member Functions inherited from casa::AnnotationBase
static LineStyle lineStyleFromString (const casacore::String &ls)
 
static Type typeFromString (const casacore::String &type)
 Given a string, return the corresponding annotation type or throw an error if the string does not correspond to an allowed type. More...
 
static casacore::String typeToString (const Type type)
 
static casacore::String keywordToString (const Keyword key)
 
static casacore::String lineStyleToString (const LineStyle linestyle)
 
static FontStyle fontStyleFromString (const casacore::String &fs)
 
static casacore::String fontStyleToString (const FontStyle fs)
 
static casacore::String colorToString (const RGB &color)
 
static void unitInit ()
 set "pix" as valid unit. More...
 
static std::ostream & print (std::ostream &os, const std::map< Keyword, casacore::String > &params)
 print a set of keyword value pairs More...
 
static std::ostream & print (std::ostream &os, const LineStyle ls)
 print a line style representation More...
 
static std::ostream & print (std::ostream &os, const FontStyle fs)
 print a font style representation More...
 
static std::ostream & print (std::ostream &os, const Direction d)
 
static std::list< std::string > colorChoices ()
 Get a list of the user-friendly color names supported. More...
 
- Static Public Attributes inherited from casa::AnnotationBase
static const RGB BLACK
 
static const RGB BLUE
 
static const RGB CYAN
 
static const RGB GRAY
 
static const RGB GREEN
 
static const RGB MAGENTA
 
static const RGB ORANGE
 
static const RGB RED
 
static const RGB WHITE
 
static const RGB YELLOW
 
static const casacore::String DEFAULT_LABEL
 
static const RGB DEFAULT_COLOR
 
static const LineStyle DEFAULT_LINESTYLE
 
static const casacore::uInt DEFAULT_LINEWIDTH
 
static const casacore::uInt DEFAULT_SYMBOLSIZE
 
static const casacore::uInt DEFAULT_SYMBOLTHICKNESS
 
static const casacore::String DEFAULT_FONT
 
static const casacore::uInt DEFAULT_FONTSIZE
 
static const FontStyle DEFAULT_FONTSTYLE
 
static const casacore::Bool DEFAULT_USETEX
 
static const RGB DEFAULT_LABELCOLOR
 
static const casacore::String DEFAULT_LABELPOS
 
static const std::vector
< casacore::Int
DEFAULT_LABELOFF
 
static const casacore::Regex rgbHexRegex
 
- Protected Member Functions inherited from casa::AnnRegion
 AnnRegion (const Type shape, const casacore::String &dirRefFrameString, const casacore::CoordinateSystem &csys, const casacore::IPosition &imShape, const casacore::Quantity &beginFreq, const casacore::Quantity &endFreq, const casacore::String &freqRefFrame, const casacore::String &dopplerString, const casacore::Quantity &restfreq, const casacore::Vector< casacore::Stokes::StokesTypes > stokes, const casacore::Bool annotationOnly, casacore::Bool requireImageRegion=true)
 only to be called by subclasses More...
 
 AnnRegion (const Type shape, const casacore::CoordinateSystem &csys, const casacore::IPosition &imShape, const casacore::Vector< casacore::Stokes::StokesTypes > &stokes, casacore::Bool requireImageRegion=true)
 use if all coordinate values will be specified in the same frames as the input coordinate system. More...
 
 AnnRegion (const AnnRegion &other)
 copy constructor More...
 
AnnRegionoperator= (const AnnRegion &rhs)
 assignment operator More...
 
casacore::Bool operator== (const AnnRegion &other) const
 
casacore::Bool hasImageRegion () const
 check if image region has a region More...
 
void _extend ()
 extend the direction plane region over spectral and/or polarization coordinates More...
 
void _toRecord (const casacore::ImageRegion &region)
 
casacore::Quantity _lengthToAngle (const casacore::Quantity &quantity, const casacore::uInt pixelAxis) const
 convert a length in pixels to an angle. More...
 
virtual void _printPrefix (std::ostream &os) const
 
void _setDirectionRegion (const casacore::ImageRegion &region)
 subclasses must call this at construction to set their base region defined in the direction plane More...
 
- Protected Member Functions inherited from casa::AnnotationBase
 AnnotationBase (const Type type, const casacore::String &dirRefFrameString, const casacore::CoordinateSystem &csys, const casacore::Quantity &beginFreq, const casacore::Quantity &endFreq, const casacore::String &freqRefFrame, const casacore::String &dopplerString, const casacore::Quantity &restfreq, const casacore::Vector< casacore::Stokes::StokesTypes > &stokes)
 if freqRefFrame or dopplerString are empty, the values from the spectral coordinate of csys will be used, if one exists. More...
 
 AnnotationBase (const Type type, const casacore::CoordinateSystem &csys, const casacore::Vector< casacore::Stokes::StokesTypes > &stokes)
 use only if the frame of the input directions is the same as the frame of the coordinate system. More...
 
AnnotationBaseoperator= (const AnnotationBase &other)
 assignment operator More...
 
casacore::MDirection _directionFromQuantities (const casacore::Quantity &q0, const casacore::Quantity &q1)
 
void _checkAndConvertDirections (const casacore::String &origin, const Direction &dirs)
 
virtual void _printPairs (std::ostream &os) const
 
const casacore::IPosition_getDirectionAxes () const
 
casacore::String _printDirection (const casacore::Quantity &longitude, const casacore::Quantity &latitude) const
 direction to string, precision of 0.1 mas ra and dec in sexigesimal format, non-equatorial coords in degrees More...
 
void _setParam (const Keyword k, const casacore::String &s)
 
casacore::MDirection::Types _getDirectionRefFrame () const
 
- Static Protected Member Functions inherited from casa::AnnotationBase
static void _checkMixed (const casacore::String &origin, const Direction &dirs)
 
static casacore::String _toArcsec (const casacore::Quantity &angle)
 convert angle to arcsec, precision 0.1 mas More...
 
static casacore::String _toDeg (const casacore::Quantity &angle)
 convert angle to degrees, precision 0.1 mas More...
 
static casacore::String _printPixel (const casacore::Double &d)
 return a string representing a pixel value, precision 1. More...
 
- Protected Attributes inherited from casa::AnnRegion
casacore::Bool _requireImageRegion
 
casacore::ImageRegion _imageRegion
 
casacore::ImageRegion _directionRegion
 

Detailed Description

This class represents an annotation of an elliptical (in position coordinates) region specified in an ascii region file as proposed in CAS-2285. It is specified by its center position semi-major and semi-minor axes, and position angle. <author>Dave Mehringer</author>

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Etymology

Holds the specification of a an annotation of an elliptical region as specified in ASCII format. Specified by center position, semi-major and semi-minor axes, and position angle.

Synopsis

This class represents an annotation of an elliptical region in coordinate space specified by center, semi-major and semi-minor axes, and position angle

Definition at line 50 of file AnnEllipse.h.

Constructor & Destructor Documentation

casa::AnnEllipse::AnnEllipse ( const casacore::Quantity xcenter,
const casacore::Quantity ycenter,
const casacore::Quantity semiMajorAxis,
const casacore::Quantity semiMinorAxis,
const casacore::Quantity positionAngle,
const casacore::String dirRefFrameString,
const casacore::CoordinateSystem csys,
const casacore::IPosition imShape,
const casacore::Quantity beginFreq,
const casacore::Quantity endFreq,
const casacore::String freqRefFrameString,
const casacore::String dopplerString,
const casacore::Quantity restfreq,
const casacore::Vector< casacore::Stokes::StokesTypes stokes,
const casacore::Bool  annotationOnly,
const casacore::Bool  requireImageRegion = true 
)

positionAngle is defined as the angle between north and the ellipse major axis.

Note the lengths are for the semi-major and semi-minor axes, not the major and minor axes

casa::AnnEllipse::AnnEllipse ( const casacore::Quantity xcenter,
const casacore::Quantity ycenter,
const casacore::Quantity semiMajorAxis,
const casacore::Quantity semiMinorAxis,
const casacore::Quantity positionAngle,
const casacore::CoordinateSystem csys,
const casacore::IPosition imShape,
const casacore::Vector< casacore::Stokes::StokesTypes > &  stokes,
const casacore::Bool  requireImageRegion = true 
)

Simplified constructor.

all frequencies are used (these can be set after construction). xcenter and ycenter must be in the same frame as the csys direction coordinate. is a region (not just an annotation), although this value can be changed after construction.

Member Function Documentation

void casa::AnnEllipse::_init ( const casacore::Quantity xcenter,
const casacore::Quantity ycenter 
)
private
casacore::MDirection casa::AnnEllipse::getCenter ( ) const

Get the center position, tranformed to the reference from of the coordinate system if necessary.

casacore::Quantity casa::AnnEllipse::getPositionAngle ( ) const

get position angle.

The quantity will have units of angular measure and will be measured from north through east, using the normal astronomical convention.

casacore::Quantity casa::AnnEllipse::getSemiMajorAxis ( ) const

get semi-major axis.

The quantity will have units of angular measure

casacore::Quantity casa::AnnEllipse::getSemiMinorAxis ( ) const

get semi-minor axis.

The quantity will have units of angular measure

AnnEllipse& casa::AnnEllipse::operator= ( const AnnEllipse other)

implicit copy constructor and destructor are fine

casacore::Bool casa::AnnEllipse::operator== ( const AnnEllipse other) const
virtual std::ostream& casa::AnnEllipse::print ( std::ostream &  os) const
virtual

Implements casa::AnnotationBase.

Member Data Documentation

casacore::Quantity casa::AnnEllipse::_convertedPositionAngle
private

Definition at line 122 of file AnnEllipse.h.

casacore::Quantity casa::AnnEllipse::_convertedSemiMajorAxis
private

Definition at line 122 of file AnnEllipse.h.

casacore::Quantity casa::AnnEllipse::_convertedSemiMinorAxis
private

Definition at line 122 of file AnnEllipse.h.

AnnotationBase::Direction casa::AnnEllipse::_inputCenter
private

Definition at line 121 of file AnnEllipse.h.

casacore::Quantity casa::AnnEllipse::_inputPositionAngle
private

Definition at line 122 of file AnnEllipse.h.

casacore::Quantity casa::AnnEllipse::_inputSemiMajorAxis
private

Definition at line 122 of file AnnEllipse.h.

casacore::Quantity casa::AnnEllipse::_inputSemiMinorAxis
private

Definition at line 122 of file AnnEllipse.h.


The documentation for this class was generated from the following file: