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

Implementation of an ellipse/rectangle object for DrawingDisplayData class. More...

#include <DDDEllipse.h>

Inheritance diagram for casa::DDDEllipse:
casa::DDDObject casa::WCRefreshEH casa::WCMotionEH casa::WCPositionEH casa::DisplayEH

Public Member Functions

 DDDEllipse (const casacore::Record &description, DrawingDisplayData *owner)
 Constructor taking a casacore::Record description. More...
 
virtual ~DDDEllipse ()
 Destructor. More...
 
virtual void draw (const Display::RefreshReason &reason, WorldCanvas *worldcanvas)
 Draw this object for the given reason on the provided WorldCanvas. More...
 
virtual casacore::Record description ()
 Return a record describing this object. More...
 
virtual void setDescription (const casacore::Record &rec)
 Update this object based on the information in the provided Record. More...
 
virtual void operator() (const WCRefreshEvent &ev)
 Event handlers. More...
 
virtual void operator() (const WCPositionEvent &ev)
 Default just prints the event to cout. More...
 
virtual void operator() (const WCMotionEvent &ev)
 default sends event to cout More...
 
- Public Member Functions inherited from casa::DDDObject
 DDDObject (const casacore::Record &description, DrawingDisplayData *owner)
 Constructor taking a casacore::Record description. More...
 
virtual ~DDDObject ()
 Destructor. More...
 
virtual void showHandles (const casacore::Bool show, const casacore::Bool tellOwner=true)
 Indicate whether the object should show its handles or not. More...
 
virtual casacore::Bool showingHandles ()
 Query whether the object is showing its handles. More...
 
virtual casacore::Bool storeClick (const DisplayEvent &ev)
 Store a click in the buffer and look for a double-click event. More...
 
virtual void clearClickBuffer ()
 Clear the click buffer. More...
 
casacore::Int objectID () const
 Return the unique id of this object. More...
 
- Public Member Functions inherited from casa::WCRefreshEH
 WCRefreshEH ()
 Default Constructor Required. More...
 
virtual ~WCRefreshEH ()
 Destructor. More...
 
- Public Member Functions inherited from casa::DisplayEH
virtual void handleEvent (DisplayEvent &)
 Classes that contain this interface (i.e., derive from it) can override this method to implement actions for whatever types of DisplayEvent they're interested in. More...
 
virtual ~DisplayEH ()
 
- Public Member Functions inherited from casa::WCMotionEH
 WCMotionEH ()
 Default Constructor Required. More...
 
virtual ~WCMotionEH ()
 Destructor. More...
 
- Public Member Functions inherited from casa::WCPositionEH
 WCPositionEH ()
 Default Constructor Required. More...
 
virtual ~WCPositionEH ()
 Destructor. More...
 

Protected Member Functions

 DDDEllipse ()
 (Required) default constructor. More...
 
 DDDEllipse (const DDDEllipse &other)
 (Required) copy constructor. More...
 
void operator= (const DDDEllipse &other)
 (Required) copy assignment. More...
 
- Protected Member Functions inherited from casa::DDDObject
DrawingDisplayDataowner ()
 Return the owner of this object. More...
 
casacore::String color () const
 Return the color to use to draw this object. More...
 
casacore::String label () const
 Return the label of this object. More...
 
casacore::Int lineWidth () const
 Return the line width of this object. More...
 
casacore::Bool isEditable () const
 
casacore::Bool isMovable () const
 
casacore::Bool isFixed () const
 
 DDDObject ()
 (Required) default constructor. More...
 
 DDDObject (const DDDObject &other)
 (Required) copy constructor. More...
 
void operator= (const DDDObject &other)
 (Required) copy assignment. More...
 
void translateMatrix (casacore::Matrix< casacore::Double > &points, casacore::Double dx, casacore::Double dy)
 Translate Matrix. More...
 
casacore::Matrix
< casacore::Double
rotateMatrix (const casacore::Matrix< casacore::Double > &points, casacore::Double angle)
 Rotate Matrix. More...
 
casacore::Bool inPolygon (const casacore::Matrix< casacore::Double > &points, casacore::Double x, casacore::Double y)
 Is point inside the polygon. More...
 
casacore::Bool inPolygon (const casacore::Vector< casacore::Double > &xP, const casacore::Vector< casacore::Double > &yP, casacore::Double x, casacore::Double y)
 
void convertCoordinateSystem (DisplayCoordinateSystem &cSys, WorldCanvas *wcPtr) const
 Convert DisplayCoordinateSystem to screen pixels. More...
 
casacore::Bool onHandle (const casacore::Block< DDDHandle > &handles, casacore::Double x, casacore::Double y)
 Is the point on a handle. More...
 

Private Member Functions

void convertToPixel ()
 COnvert parameters from world to pixel. More...
 
void updateWorldValues ()
 Update private world parameters from current pixel values. More...
 
void decode (const casacore::RecordInterface &description, casacore::Bool required)
 Decode record into private data. More...
 
void encode (casacore::RecordInterface &description) const
 Encode private data into record. More...
 
void createCorners ()
 compute corners of rectangle More...
 
casacore::Matrix< casacore::InttoIntPixel (const casacore::Matrix< casacore::Double > &points)
 
void listWorld ()
 Debugging routines. More...
 
void listPixel ()
 

Private Attributes

casacore::Bool itsOutline
 Fill style. More...
 
casacore::Vector
< casacore::Quantum
< casacore::Double > > 
itsWorldParameters
 Define center x, center y, major, minor, pa in world. More...
 
casacore::Vector
< casacore::Double
itsPixelCenter
 Define center x, center y, major, minor, pa (radians) in screen pixel. More...
 
casacore::Vector
< casacore::Double
itsPixelShape
 
casacore::Matrix
< casacore::Double
itsCorners
 Rotated Rectangle Corners to draw in screen pixel. More...
 
casacore::Matrix
< casacore::Double
itsPixelOffsets
 
casacore::Block< DDDHandleitsHandles
 casacore::List of handles More...
 
DDDObject::Mode itsMode
 Mode. More...
 
casacore::Double itsBaseMoveX
 Store for movement bases. More...
 
casacore::Double itsBaseMoveY
 
casacore::LogIO itsLogger
 Logger. More...
 
DisplayCoordinateSystem itsCoordinateSystem
 DisplayCoordinateSystem in screen pixel coordinates. More...
 
WorldCanvasitsWorldCanvasPtr
 pointer to world canvas (shallow copy) More...
 
casacore::Bool itsRectangle
 are we drawing a rectangle or an ellipse ? More...
 
casacore::Bool itsFracX
 Fractional indicators. More...
 
casacore::Bool itsFracY
 
casacore::Bool itsDoRef
 Do world/pixel conversions at reference location ? More...
 

Additional Inherited Members

- Public Types inherited from casa::DDDObject
enum  Mode {
  None,
  Handle,
  Move,
  Rotate
}
 

Detailed Description

Implementation of an ellipse/rectangle object for DrawingDisplayData class.

Synopsis

This class implements the interface defined by DDDObject, to provide an ellipse or rectangle object for registration with DrawingDisplayData objects. The widths are all full widths.

Definition at line 69 of file DDDEllipse.h.

Constructor & Destructor Documentation

casa::DDDEllipse::DDDEllipse ( const casacore::Record description,
DrawingDisplayData owner 
)

Constructor taking a casacore::Record description.

Fields in the record, on top of what is consumed by the DDDObject constructor, are: Required : center (vector of quanta length 2), major, minor, positionangle (all quanta).

Units 'frac' ([0->1]) are available for the center only. Units 'pix' (absolute 0-rel image pixels) are available for the major and minor only.

Other, not required fields are outline & editable which default to true. When editable=false the object can be moved but not reshaped, when true it can be moved and reshaped. When outline=false the ellipse is filled. If the field rectangle=true a rectangle is drawn. If it does not exist or is false, an ellipse is drawn.

Finally, field doreference which defaults to false is used to control the location at which conversions to and from pixel coordinates are done. If true then all conversions are done at the reference value. Otherwise, the conversions are done at the actual location of the shape. For example, with a casacore::DirectionCoordinate plane, setting doreference=true will cause the shape to rotate as you move it about the display as the position angle tracks the local North.

virtual casa::DDDEllipse::~DDDEllipse ( )
virtual

Destructor.

casa::DDDEllipse::DDDEllipse ( )
protected

(Required) default constructor.

casa::DDDEllipse::DDDEllipse ( const DDDEllipse other)
protected

(Required) copy constructor.

Member Function Documentation

void casa::DDDEllipse::convertToPixel ( )
private

COnvert parameters from world to pixel.

void casa::DDDEllipse::createCorners ( )
private

compute corners of rectangle

void casa::DDDEllipse::decode ( const casacore::RecordInterface description,
casacore::Bool  required 
)
private

Decode record into private data.

virtual casacore::Record casa::DDDEllipse::description ( )
virtual

Return a record describing this object.

Presently returns only construction description.

Reimplemented from casa::DDDObject.

virtual void casa::DDDEllipse::draw ( const Display::RefreshReason reason,
WorldCanvas worldcanvas 
)
virtual

Draw this object for the given reason on the provided WorldCanvas.

Implements casa::DDDObject.

void casa::DDDEllipse::encode ( casacore::RecordInterface description) const
private

Encode private data into record.

void casa::DDDEllipse::listPixel ( )
private
void casa::DDDEllipse::listWorld ( )
private

Debugging routines.

virtual void casa::DDDEllipse::operator() ( const WCRefreshEvent ev)
virtual

Event handlers.

The parent DrawingDisplayData will distribute events as necessary to the various DDDObjects which comprise it.

Implements casa::DDDObject.

virtual void casa::DDDEllipse::operator() ( const WCPositionEvent ev)
virtual

Default just prints the event to cout.

Implements casa::DDDObject.

virtual void casa::DDDEllipse::operator() ( const WCMotionEvent ev)
virtual

default sends event to cout

Implements casa::DDDObject.

void casa::DDDEllipse::operator= ( const DDDEllipse other)
protected

(Required) copy assignment.

virtual void casa::DDDEllipse::setDescription ( const casacore::Record rec)
virtual

Update this object based on the information in the provided Record.

Reimplemented from casa::DDDObject.

casacore::Matrix<casacore::Int> casa::DDDEllipse::toIntPixel ( const casacore::Matrix< casacore::Double > &  points)
private
void casa::DDDEllipse::updateWorldValues ( )
private

Update private world parameters from current pixel values.

Member Data Documentation

casacore::Double casa::DDDEllipse::itsBaseMoveX
private

Store for movement bases.

Definition at line 160 of file DDDEllipse.h.

casacore::Double casa::DDDEllipse::itsBaseMoveY
private

Definition at line 160 of file DDDEllipse.h.

DisplayCoordinateSystem casa::DDDEllipse::itsCoordinateSystem
private

DisplayCoordinateSystem in screen pixel coordinates.

Definition at line 167 of file DDDEllipse.h.

casacore::Matrix<casacore::Double> casa::DDDEllipse::itsCorners
private

Rotated Rectangle Corners to draw in screen pixel.

Definition at line 147 of file DDDEllipse.h.

casacore::Bool casa::DDDEllipse::itsDoRef
private

Do world/pixel conversions at reference location ?

Definition at line 179 of file DDDEllipse.h.

casacore::Bool casa::DDDEllipse::itsFracX
private

Fractional indicators.

Definition at line 176 of file DDDEllipse.h.

casacore::Bool casa::DDDEllipse::itsFracY
private

Definition at line 176 of file DDDEllipse.h.

casacore::Block<DDDHandle> casa::DDDEllipse::itsHandles
private

casacore::List of handles

Definition at line 152 of file DDDEllipse.h.

casacore::LogIO casa::DDDEllipse::itsLogger
private

Logger.

Definition at line 164 of file DDDEllipse.h.

DDDObject::Mode casa::DDDEllipse::itsMode
private

Mode.

Definition at line 156 of file DDDEllipse.h.

casacore::Bool casa::DDDEllipse::itsOutline
private

Fill style.

Definition at line 138 of file DDDEllipse.h.

casacore::Vector<casacore::Double> casa::DDDEllipse::itsPixelCenter
private

Define center x, center y, major, minor, pa (radians) in screen pixel.

Definition at line 144 of file DDDEllipse.h.

casacore::Matrix<casacore::Double> casa::DDDEllipse::itsPixelOffsets
private

Definition at line 148 of file DDDEllipse.h.

casacore::Vector<casacore::Double> casa::DDDEllipse::itsPixelShape
private

Definition at line 144 of file DDDEllipse.h.

casacore::Bool casa::DDDEllipse::itsRectangle
private

are we drawing a rectangle or an ellipse ?

Definition at line 173 of file DDDEllipse.h.

WorldCanvas* casa::DDDEllipse::itsWorldCanvasPtr
private

pointer to world canvas (shallow copy)

Definition at line 170 of file DDDEllipse.h.

casacore::Vector<casacore::Quantum<casacore::Double> > casa::DDDEllipse::itsWorldParameters
private

Define center x, center y, major, minor, pa in world.

Definition at line 141 of file DDDEllipse.h.


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