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

Implementation of a polyline. More...

#include <DSPolyLine.h>

Inheritance diagram for casa::DSPolyLine:
casa::DSBasic casa::DisplayShape casa::DSLine casa::DSPixelPolyLine casa::DSScreenPolyLine casa::DSWorldPolyLine casa::DSArrow casa::DSPixelArrow casa::DSScreenArrow casa::DSWorldArrow

Public Member Functions

 DSPolyLine ()
 Constructors and Destructors. More...
 
 DSPolyLine (const DSPolyLine &other)
 
 DSPolyLine (const casacore::Matrix< casacore::Float > &points, const casacore::Bool &handles, const casacore::Bool &drawHandles)
 
virtual ~DSPolyLine ()
 
virtual void draw (PixelCanvas *pc)
 General DisplayShape functions. More...
 
virtual casacore::Bool inObject (const casacore::Float &xPos, const casacore::Float &yPos)
 Is the supplied point within the DisplayShape? More...
 
virtual void move (const casacore::Float &dX, const casacore::Float &dY)
 
virtual casacore::Vector
< casacore::Float
getCenter ()
 Returns the center of the DisplayShape (x,y). More...
 
virtual void setCenter (const casacore::Float &xPos, const casacore::Float &yPos)
 Sets the center of the DisplayShape. More...
 
virtual void scale (const casacore::Float &scaleFactor)
 Scale the shape about its center by the scaleFactor. More...
 
virtual void rotate (const casacore::Float &angle)
 Rotate the shape about its center by a set angle (angle in degrees). More...
 
virtual void rotateAbout (const casacore::Float &angle, const casacore::Float &aboutX, const casacore::Float &aboutY)
 
virtual void changePoint (const casacore::Vector< casacore::Float > &pos)
 Point manipulation functions. More...
 
virtual void changePoint (const casacore::Vector< casacore::Float > &pos, const casacore::Int n)
 Changes the nth point making up the DisplayShape ot the specified location. More...
 
virtual void addPoint (const casacore::Vector< casacore::Float > &newPos)
 If applicable, this function will add a point to the shape in the most meaningful location. More...
 
virtual void setPoints (const casacore::Matrix< casacore::Float > &points)
 
virtual casacore::uInt nPoints ()
 Return the number of points. More...
 
virtual casacore::Bool setOptions (const casacore::Record &newSettings)
 Get and set this shapes options. More...
 
virtual casacore::Record getOptions ()
 Settings. More...
 
- 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 ()
 Return all my points. More...
 

Private Member Functions

virtual void setDefaultOptions ()
 Used when default constructor called. More...
 

Private Attributes

casacore::Matrix< casacore::FloatitsPoints
 
casacore::Vector< casacore::FloatitsCenter
 
casacore::Bool itsValidCenter
 

Additional Inherited Members

- 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 polyline.

Prerequisite

Etymology

DSPolyLine is a method of managing the drawing of a polyline onto a PixelCanvas.

Synopsis

DSPolyLine manages a collection of points, which when called it draws. It also manages actions like the addition and removal of points from/to the line.

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

The need to draw, move and manipulate a polyline.

Example

Definition at line 76 of file DSPolyLine.h.

Constructor & Destructor Documentation

casa::DSPolyLine::DSPolyLine ( )

Constructors and Destructors.

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

Member Function Documentation

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

If applicable, this function will add a point to the shape in the most meaningful location.

Reimplemented from casa::DisplayShape.

Reimplemented in casa::DSWorldPolyLine, and casa::DSScreenPolyLine.

virtual void casa::DSPolyLine::changePoint ( const casacore::Vector< casacore::Float > &  pos)
virtual

Point manipulation functions.

The changePoint with only one argument moves the closest point to the location specified.

Implements casa::DisplayShape.

Reimplemented in casa::DSArrow, casa::DSWorldPolyLine, casa::DSScreenArrow, casa::DSWorldArrow, and casa::DSScreenPolyLine.

virtual void casa::DSPolyLine::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::DSArrow, casa::DSWorldPolyLine, casa::DSScreenArrow, casa::DSWorldArrow, and casa::DSScreenPolyLine.

virtual void casa::DSPolyLine::draw ( PixelCanvas pc)
virtual

General DisplayShape functions.

Reimplemented from casa::DSBasic.

Reimplemented in casa::DSArrow, casa::DSWorldPolyLine, and casa::DSWorldArrow.

virtual casacore::Vector<casacore::Float> casa::DSPolyLine::getCenter ( )
virtual

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

Implements casa::DisplayShape.

virtual casacore::Record casa::DSPolyLine::getOptions ( )
virtual
virtual casacore::Matrix<casacore::Float> casa::DSPolyLine::getPoints ( )
protectedvirtual

Return all my points.

virtual casacore::Bool casa::DSPolyLine::inObject ( const casacore::Float xPos,
const casacore::Float yPos 
)
virtual

Is the supplied point within the DisplayShape?

Implements casa::DisplayShape.

virtual void casa::DSPolyLine::move ( const casacore::Float dX,
const casacore::Float dY 
)
virtual
virtual casacore::uInt casa::DSPolyLine::nPoints ( )
virtual

Return the number of points.

virtual void casa::DSPolyLine::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::DSArrow, casa::DSScreenArrow, casa::DSWorldPolyLine, casa::DSWorldArrow, and casa::DSScreenPolyLine.

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

Reimplemented from casa::DSBasic.

Reimplemented in casa::DSArrow.

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

Scale the shape about its center by the scaleFactor.

Implements casa::DisplayShape.

Reimplemented in casa::DSArrow, casa::DSScreenArrow, casa::DSWorldPolyLine, casa::DSWorldArrow, and casa::DSScreenPolyLine.

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

Used when default constructor called.

Reimplemented from casa::DisplayShape.

Reimplemented in casa::DSArrow.

virtual casacore::Bool casa::DSPolyLine::setOptions ( const casacore::Record newSettings)
virtual
virtual void casa::DSPolyLine::setPoints ( const casacore::Matrix< casacore::Float > &  points)
virtual

Member Data Documentation

casacore::Vector<casacore::Float> casa::DSPolyLine::itsCenter
private

Definition at line 126 of file DSPolyLine.h.

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

Definition at line 125 of file DSPolyLine.h.

casacore::Bool casa::DSPolyLine::itsValidCenter
private

Definition at line 127 of file DSPolyLine.h.


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