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::DSPoly Class Reference

Implementation of a Polygon. More...

#include <DSPoly.h>

Inheritance diagram for casa::DSPoly:
casa::DSClosed casa::DSBasic casa::DisplayShape casa::DSPixelPoly casa::DSRectangle casa::DSScreenPoly casa::DSWorldPoly casa::DSPixelRectangle casa::DSScreenRectangle casa::DSSquare casa::DSWorldRectangle

Public Member Functions

 DSPoly ()
 Constructors and destructor. More...
 
 DSPoly (const DSPoly &other)
 
 DSPoly (const casacore::Matrix< casacore::Float > &points, const casacore::Bool &handles=false, const casacore::Bool &drawHandles=false)
 
virtual ~DSPoly ()
 
virtual void draw (PixelCanvas *pc)
 General DisplayShape functions. More...
 
virtual void rotate (const casacore::Float &angle)
 Rotate the shape about its center by a set angle (angle in degrees). More...
 
virtual casacore::Bool inObject (const casacore::Float &xPos, const casacore::Float &yPos)
 Is the supplied point within the DisplayShape? More...
 
virtual void scale (const casacore::Float &scale)
 Scale the shape about its center by the scaleFactor. More...
 
virtual void move (const casacore::Float &dX, const casacore::Float &dY)
 
virtual void changePoint (const casacore::Vector< casacore::Float > &newLocation)
 Changes the closest point to the supplied location to that location. More...
 
virtual void changePoint (const casacore::Vector< casacore::Float > &newLocation, const casacore::Int point)
 Changes the nth point making up the DisplayShape ot the specified location. More...
 
virtual void setCenter (const casacore::Float &xPos, const casacore::Float &yPos)
 Sets the center of the DisplayShape. More...
 
virtual casacore::Vector
< casacore::Float
getCenter ()
 Returns the center of the DisplayShape (x,y). More...
 
virtual void rotateAbout (const casacore::Float &angle, const casacore::Float &aboutX, const casacore::Float &aboutY)
 
virtual void addPoint (const casacore::Vector< casacore::Float > &newPoint)
 Polygon specific functions, add, delete and set points, all in pixels. More...
 
virtual void deletePoint (const casacore::Vector< casacore::Float > &removePoint)
 
virtual void deletePoint (const casacore::Int nPoint)
 
virtual void setPoints (const casacore::Matrix< casacore::Float > &newPoints)
 
virtual casacore::Record getOptions ()
 Get and set options. More...
 
virtual casacore::Bool setOptions (const casacore::Record &settings)
 
- Public Member Functions inherited from casa::DSClosed
 DSClosed ()
 Constructors and destructors. More...
 
 DSClosed (const DSClosed &other)
 
virtual ~DSClosed ()
 
virtual void setFillStyle (DSClosed::FillStyle fill)
 Get / Set fill options. More...
 
virtual DSClosed::FillStyle getFillStyle ()
 
virtual void setFillColor (casacore::String color)
 
virtual casacore::String getFillColor ()
 
- Public Member Functions inherited from casa::DSBasic
 DSBasic ()
 Default constructor. More...
 
 DSBasic (const DSBasic &other)
 Copy constructor. More...
 
virtual ~DSBasic ()
 Destructor. More...
 
virtual void setLineWidth (const casacore::Int pixels)
 Manage line width. More...
 
virtual casacore::Int getLineWidth ()
 
- Public Member Functions inherited from casa::DisplayShape
 DisplayShape ()
 Default constructor. More...
 
 DisplayShape (const DisplayShape &other)
 Copy constructor. More...
 
virtual ~DisplayShape ()
 Destructor. More...
 
virtual casacore::Matrix
< casacore::Float
rotatePolygon (const casacore::Matrix< casacore::Float > &toRotate, const casacore::Float &angle, const casacore::Float &aboutX, const casacore::Float &aboutY)
 Rotate the supplied polygon (column 1 - x values, column 2 - y values) about the supplied point by the supplied angle. More...
 
virtual casacore::Vector
< casacore::Float
rotatePoint (const casacore::Vector< casacore::Float > &toRotate, const casacore::Float &angle, const casacore::Float &aboutX, const casacore::Float &aboutY)
 Rotates a point around the point specified. More...
 
virtual casacore::Matrix
< casacore::Float
translateMatrix (const casacore::Matrix< casacore::Float > &points, const casacore::Float &dx, const casacore::Float &dy)
 Translate an entire matrix by the specified dx / dy amounts. More...
 
virtual casacore::Bool inPolygon (const casacore::Matrix< casacore::Float > &points, const casacore::Float &xPos, const casacore::Float &yPos)
 Is xPos, YPos inside the supplied points (column 1 - x values, clolumn 2 - y values) More...
 
virtual casacore::Bool closestLine (const casacore::Matrix< casacore::Float > &points, const casacore::Float &xPos, const casacore::Float &yPos, casacore::Int &firstVert, casacore::Int &secondVert, const casacore::Bool &closedPoly=true)
 Determine the two vertices (firstVert, secondVert) which join the line closest to the xPos, yPos point supplied. More...
 
virtual casacore::Bool closestPoint (const casacore::Matrix< casacore::Float > &points, const casacore::Float &xPos, const casacore::Float &yPos, casacore::Int &out)
 For a specified set of points, find the closest to xPos,YPos. More...
 
virtual casacore::Bool closestPoints (const casacore::Matrix< casacore::Float > &points, const casacore::Float &xPos, const casacore::Float &yPos, casacore::Int &outClosest, casacore::Int &outSecond)
 Find the closest two Points from a casacore::Matrix to the specified point. More...
 
virtual casacore::Float toRadians (const casacore::Float &degrees)
 Convert degrees to radians. More...
 
virtual casacore::Float toDegrees (const casacore::Float &radians)
 Conver radians to degree. More...
 
virtual void addLocked (DisplayShape *toLock)
 Allow locking of other shapes onto this one. More...
 
virtual void removeLocked (DisplayShape *removeLock)
 Removes a lock from the specified shape. More...
 
virtual void buildHandles (const casacore::Matrix< casacore::Float > &startPoints)
 Handle management. More...
 
virtual casacore::Matrix
< casacore::Float
getHandleLocations ()
 
virtual void setHandlePositions (const casacore::Matrix< casacore::Float > &newPoints)
 
virtual DSClosedmakeHandle (const casacore::Vector< casacore::Float > &newHandlePos)
 
virtual void addHandle (const casacore::Vector< casacore::Float > &newHandlePos, const casacore::Bool &atEnd=true, const casacore::Int position=0)
 
virtual casacore::Bool removeHandle (const casacore::Vector< casacore::Float > &getRidOf)
 
virtual casacore::Bool removeHandle (const casacore::Int nHandle)
 
virtual casacore::Bool onHandles (const casacore::Float &xPos, const casacore::Float &yPos)
 
virtual casacore::Bool whichHandle (const casacore::Float &xPos, const casacore::Float &yPos, casacore::Int &out)
 
virtual void setDrawHandles (const casacore::Bool &shouldIDraw)
 
virtual casacore::Bool drawingHandles ()
 
virtual void setHasHandles (const casacore::Bool &hasHandles)
 
virtual void setHandleShape (const DisplayShape::HandleShape &shape)
 
virtual void setHandleSize (const casacore::Int pixelSize)
 
virtual void setHandleColor (const casacore::String &handleColor)
 
virtual casacore::uInt nHandles ()
 
virtual void setColor (const casacore::String &newColor)
 Manage the color of object. More...
 
virtual casacore::String getColor ()
 
virtual void recalculateScreenPosition ()
 

Protected Member Functions

virtual casacore::Matrix
< casacore::Float
getPoints ()
 

Private Member Functions

virtual void setDefaultOptions ()
 Used to set up the class when default constructor called. More...
 
virtual casacore::Float getArea ()
 

Private Attributes

casacore::Matrix< casacore::FloatitsPoints
 Points used to draw (with scaling + rotation) More...
 
casacore::Vector< casacore::FloatitsPolyCenter
 
casacore::Bool itsValidPoints
 
casacore::Bool itsValidCenter
 

Additional Inherited Members

- Public Types inherited from casa::DSClosed
enum  FillStyle {
  No_Fill,
  Full_Fill
}
 Type of fill to use. More...
 
- Public Types inherited from casa::DisplayShape
enum  HandleShape {
  Filled_Square,
  Open_Square,
  Filled_Circle,
  Open_Circle,
  Filled_Triangle,
  Open_Triangle
}
 Handle style. More...
 

Detailed Description

Implementation of a Polygon.

Prerequisite

Etymology

DSPoly is a method of managing the drawing of a polygon onto a PixelCanvas.

Synopsis

DSPoly allows for the management of a polygon, including the addition and deletion of points.

There are generally two ways to make DisplayShape(s); To create them in "one hit" by providing arguments to the constructor, or by using the default constructor and then the "setOptions" method. A simple interface for all classes inheriting from the DisplayShape class is provided by DisplayShapeInterface.

Motivation

To enable display of circles onto a pixel canvas.

Example

Definition at line 73 of file DSPoly.h.

Constructor & Destructor Documentation

casa::DSPoly::DSPoly ( )

Constructors and destructor.

casa::DSPoly::DSPoly ( const DSPoly other)
casa::DSPoly::DSPoly ( const casacore::Matrix< casacore::Float > &  points,
const casacore::Bool handles = false,
const casacore::Bool drawHandles = false 
)
virtual casa::DSPoly::~DSPoly ( )
virtual

Member Function Documentation

virtual void casa::DSPoly::addPoint ( const casacore::Vector< casacore::Float > &  newPoint)
virtual

Polygon specific functions, add, delete and set points, all in pixels.

Add point decides the best place in the array to insert the new point. Similarly, deletePoints(const casacore::Vector<casacore::Float>& remove) deletes the point closest to that provided.

Reimplemented from casa::DisplayShape.

Reimplemented in casa::DSRectangle, casa::DSWorldPoly, and casa::DSScreenPoly.

virtual void casa::DSPoly::changePoint ( const casacore::Vector< casacore::Float > &  newPos)
virtual

Changes the closest point to the supplied location to that location.

Implements casa::DisplayShape.

Reimplemented in casa::DSRectangle, casa::DSSquare, casa::DSWorldPoly, casa::DSScreenPoly, casa::DSWorldRectangle, and casa::DSScreenRectangle.

virtual void casa::DSPoly::changePoint ( const casacore::Vector< casacore::Float > &  newPoint,
const casacore::Int  nPoint 
)
virtual

Changes the nth point making up the DisplayShape ot the specified location.

Implements casa::DisplayShape.

Reimplemented in casa::DSRectangle, casa::DSSquare, casa::DSWorldPoly, casa::DSScreenPoly, casa::DSWorldRectangle, and casa::DSScreenRectangle.

virtual void casa::DSPoly::deletePoint ( const casacore::Vector< casacore::Float > &  removePoint)
virtual
virtual void casa::DSPoly::deletePoint ( const casacore::Int  nPoint)
virtual
virtual void casa::DSPoly::draw ( PixelCanvas pc)
virtual

General DisplayShape functions.

Reimplemented from casa::DSClosed.

Reimplemented in casa::DSWorldPoly, and casa::DSWorldRectangle.

virtual casacore::Float casa::DSPoly::getArea ( )
privatevirtual
virtual casacore::Vector<casacore::Float> casa::DSPoly::getCenter ( )
virtual

Returns the center of the DisplayShape (x,y).

Implements casa::DisplayShape.

virtual casacore::Record casa::DSPoly::getOptions ( )
virtual
virtual casacore::Matrix<casacore::Float> casa::DSPoly::getPoints ( )
protectedvirtual
virtual casacore::Bool casa::DSPoly::inObject ( const casacore::Float xPos,
const casacore::Float yPos 
)
virtual

Is the supplied point within the DisplayShape?

Implements casa::DisplayShape.

virtual void casa::DSPoly::move ( const casacore::Float dX,
const casacore::Float dY 
)
virtual
virtual void casa::DSPoly::rotate ( const casacore::Float angle)
virtual

Rotate the shape about its center by a set angle (angle in degrees).

Implements casa::DisplayShape.

Reimplemented in casa::DSRectangle, casa::DSWorldPoly, casa::DSScreenPoly, casa::DSWorldRectangle, and casa::DSScreenRectangle.

virtual void casa::DSPoly::rotateAbout ( const casacore::Float angle,
const casacore::Float aboutX,
const casacore::Float aboutY 
)
virtual

Reimplemented from casa::DSClosed.

Reimplemented in casa::DSRectangle.

virtual void casa::DSPoly::scale ( const casacore::Float scaleFactor)
virtual

Scale the shape about its center by the scaleFactor.

Implements casa::DisplayShape.

Reimplemented in casa::DSWorldPoly, and casa::DSScreenPoly.

virtual void casa::DSPoly::setCenter ( const casacore::Float xPos,
const casacore::Float yPos 
)
virtual
virtual void casa::DSPoly::setDefaultOptions ( )
privatevirtual

Used to set up the class when default constructor called.

Reimplemented from casa::DSClosed.

Reimplemented in casa::DSRectangle.

virtual casacore::Bool casa::DSPoly::setOptions ( const casacore::Record settings)
virtual
virtual void casa::DSPoly::setPoints ( const casacore::Matrix< casacore::Float > &  newPoints)
virtual

Reimplemented in casa::DSWorldPoly, and casa::DSScreenPoly.

Member Data Documentation

casacore::Matrix<casacore::Float> casa::DSPoly::itsPoints
private

Points used to draw (with scaling + rotation)

Definition at line 123 of file DSPoly.h.

casacore::Vector<casacore::Float> casa::DSPoly::itsPolyCenter
private

Definition at line 124 of file DSPoly.h.

casacore::Bool casa::DSPoly::itsValidCenter
private

Definition at line 126 of file DSPoly.h.

casacore::Bool casa::DSPoly::itsValidPoints
private

Definition at line 125 of file DSPoly.h.


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