casa
5.7.0-16
|
Arrow implementation;adds a polygon to a DSLine to represent the arrow head. More...
#include <DSArrow.h>
Public Types | |
enum | ArrowHead { Open_Triangle, Filled_Triangle, Cool_Triangle } |
Supported arrow head types. More... | |
Public Types inherited from casa::DisplayShape | |
enum | HandleShape { Filled_Square, Open_Square, Filled_Circle, Open_Circle, Filled_Triangle, Open_Triangle } |
Handle style. More... | |
Public Member Functions | |
DSArrow () | |
Default constructor. More... | |
DSArrow (const casacore::Vector< casacore::Float > &startPoint, const casacore::Vector< casacore::Float > &endPoint, DSArrow::ArrowHead style=DSArrow::Cool_Triangle, const casacore::Int arrowHeadSize=8) | |
The start and end point are in pixel co-ordinates. More... | |
DSArrow (const DSArrow &other) | |
Copy constructor. More... | |
virtual | ~DSArrow () |
Destructor. More... | |
virtual void | draw (PixelCanvas *pc) |
Standard Display Shape functions. More... | |
virtual void | move (const casacore::Float &dX, const casacore::Float &dY) |
virtual void | rotate (const casacore::Float &angle) |
Rotate the shape about its center by a set angle (angle in degrees). More... | |
virtual void | scale (const casacore::Float &scaleFactor) |
Scale the shape about its center by the scaleFactor. More... | |
virtual void | setCenter (const casacore::Float &xPos, const casacore::Float &yPos) |
This does nothing, it's so arrow and other inheriting classes can take note of new centers. More... | |
virtual void | rotateAbout (const casacore::Float &angle, const casacore::Float &aboutX, const casacore::Float &aboutY) |
Does nothing currently. More... | |
virtual void | setStartPoint (const casacore::Vector< casacore::Float > &startPoint) |
Standard (changePoint) and specific funtions for altering the arrow. More... | |
virtual void | setEndPoint (const casacore::Vector< casacore::Float > &endPoint) |
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 | changePoint (const casacore::Vector< casacore::Float > &pos) |
Point manipulation functions. More... | |
virtual void | setLength (const casacore::Float &pixelLength) |
These are to enable the use of arrows more easily in vector plots. More... | |
virtual void | setAngle (const casacore::Float &angle) |
virtual casacore::Record | getOptions () |
Return an option record describing the shape. More... | |
virtual casacore::Bool | setOptions (const casacore::Record &newSettings) |
Set options. More... | |
Public Member Functions inherited from casa::DSLine | |
DSLine () | |
Constructors and Destructors. More... | |
DSLine (const DSLine &other) | |
DSLine (const casacore::Vector< casacore::Float > &startPos, const casacore::Vector< casacore::Float > &endPos, const casacore::Bool &handles=true, const casacore::Bool &drawHandles=true) | |
virtual | ~DSLine () |
virtual casacore::Bool | isValid () |
Does this line have a valid start and a valid end? More... | |
Public Member Functions inherited from casa::DSPolyLine | |
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 casacore::Bool | inObject (const casacore::Float &xPos, const casacore::Float &yPos) |
Is the supplied point within the DisplayShape? More... | |
virtual casacore::Vector < casacore::Float > | getCenter () |
Returns the center of the DisplayShape (x,y). 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... | |
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 °rees) |
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 DSClosed * | makeHandle (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 () |
Static Public Attributes | |
static const int | numArrowHeads |
For checking setoptions(arrowheadstyle = ?) More... | |
Private Member Functions | |
virtual void | buildArrowHead () |
Make a new arrow head (which is simply a DSPoly) More... | |
virtual void | updateArrowHead () |
Caluclate angle etc. More... | |
virtual void | setDefaultOptions () |
Set default options. More... | |
virtual void | make () |
Construct the line segment of the arrow when we have valid start / end points. More... | |
Private Attributes | |
casacore::Float | itsLength |
If someone calls "setLength" before "setCenter", we can store our length until they DO call setLength;. More... | |
DParameterRange< casacore::Int > * | itsHeadSize |
DSPoly * | itsArrowHead |
casacore::Vector< casacore::Float > | itsStartPoint |
Temp storage while I am being set up. More... | |
casacore::Vector< casacore::Float > | itsEndPoint |
casacore::Matrix< casacore::Float > | itsUnrotatedHead |
A casacore::Matrix of the unRotated arrow head. More... | |
casacore::Float | itsOffset |
Offset needed to make sure the tip of the arrow is at the end of the line. More... | |
DSArrow::ArrowHead | itsArrowHeadStyle |
Style of arrow head. More... | |
casacore::Bool | itsValidStart |
Have I been supplied with valid points yet. More... | |
casacore::Bool | itsValidEnd |
Additional Inherited Members | |
Protected Member Functions inherited from casa::DSLine | |
virtual casacore::Bool | validStart () |
virtual casacore::Bool | validEnd () |
virtual casacore::Matrix < casacore::Float > | getEnds () |
General utility functions. More... | |
virtual casacore::Matrix < casacore::Float > | asPolyLine (const casacore::Vector< casacore::Float > &startPos, const casacore::Vector< casacore::Float > &endPos) |
Protected Member Functions inherited from casa::DSPolyLine | |
virtual casacore::Matrix < casacore::Float > | getPoints () |
Return all my points. More... | |
Arrow implementation;adds a polygon to a DSLine to represent the arrow head.
DSArrow is a method of managing the drawing of a line and polygon onto a PixelCanvas.
DSArrow simply extends from DSLine, and adds the management of a polygon to it. The polygon is used to represent the arrow head, and various options regarding its apppearance can be changed.
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.
It was thought, especially in an annotations context, that an Arrow would be a usefull drawing tool.
casa::DSArrow::DSArrow | ( | ) |
Default constructor.
In order to make the arrow "valid", it must be supplied with a valid start and end point.
casa::DSArrow::DSArrow | ( | const casacore::Vector< casacore::Float > & | startPoint, |
const casacore::Vector< casacore::Float > & | endPoint, | ||
DSArrow::ArrowHead | style = DSArrow::Cool_Triangle , |
||
const casacore::Int | arrowHeadSize = 8 |
||
) |
The start and end point are in pixel co-ordinates.
casa::DSArrow::DSArrow | ( | const DSArrow & | other | ) |
Copy constructor.
|
virtual |
Destructor.
|
privatevirtual |
Make a new arrow head (which is simply a DSPoly)
|
virtual |
Changes the nth point making up the DisplayShape ot the specified location.
Reimplemented from casa::DSPolyLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
virtual |
Point manipulation functions.
The changePoint with only one argument moves the closest point to the location specified.
Reimplemented from casa::DSPolyLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
virtual |
Standard Display Shape functions.
Reimplemented from casa::DSPolyLine.
Reimplemented in casa::DSWorldArrow.
|
virtual |
Return an option record describing the shape.
Reimplemented from casa::DSLine.
Reimplemented in casa::DSScreenArrow, casa::DSWorldArrow, and casa::DSPixelArrow.
Referenced by casa::DSPixelArrow::getRawOptions(), casa::DSScreenArrow::getRawOptions(), and casa::DSWorldArrow::getRawOptions().
|
privatevirtual |
Construct the line segment of the arrow when we have valid start / end points.
Reimplemented from casa::DSLine.
|
virtual |
Reimplemented from casa::DSPolyLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
virtual |
Rotate the shape about its center by a set angle (angle in degrees).
Reimplemented from casa::DSPolyLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
virtual |
Does nothing currently.
Reimplemented from casa::DSPolyLine.
|
virtual |
Scale the shape about its center by the scaleFactor.
Reimplemented from casa::DSPolyLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
virtual |
|
virtual |
This does nothing, it's so arrow and other inheriting classes can take note of new centers.
Reimplemented from casa::DSLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
privatevirtual |
Set default options.
Reimplemented from casa::DSPolyLine.
|
virtual |
Reimplemented from casa::DSLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
virtual |
These are to enable the use of arrows more easily in vector plots.
|
virtual |
Set options.
Reimplemented from casa::DSLine.
Reimplemented in casa::DSScreenArrow, casa::DSWorldArrow, and casa::DSPixelArrow.
|
virtual |
Standard (changePoint) and specific funtions for altering the arrow.
the changePoint method with only one argument will move the closest point to the specified new point. When speciffyin 'n', in this case only 0 or 1 are valid. The 'startpoint' is the one with the arrow head on it.
Reimplemented from casa::DSLine.
Reimplemented in casa::DSScreenArrow, and casa::DSWorldArrow.
|
privatevirtual |
Caluclate angle etc.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
A casacore::Matrix of the unRotated arrow head.
|
private |
|
private |
|
static |