casa
5.7.0-16
|
Implementation of a Polygon. More...
#include <DSPoly.h>
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 °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 () |
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::Float > | itsPoints |
Points used to draw (with scaling + rotation) More... | |
casacore::Vector< casacore::Float > | itsPolyCenter |
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... | |
Implementation of a Polygon.
DSPoly is a method of managing the drawing of a polygon onto a PixelCanvas.
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.
To enable display of circles onto a pixel canvas.
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 |
|
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 |
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 |
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 |
|
virtual |
|
virtual |
General DisplayShape functions.
Reimplemented from casa::DSClosed.
Reimplemented in casa::DSWorldPoly, and casa::DSWorldRectangle.
|
privatevirtual |
|
virtual |
Returns the center of the DisplayShape (x,y).
Implements casa::DisplayShape.
|
virtual |
Get and set options.
Reimplemented from casa::DSClosed.
Reimplemented in casa::DSRectangle, casa::DSSquare, casa::DSWorldPoly, casa::DSWorldRectangle, casa::DSScreenPoly, casa::DSPixelRectangle, casa::DSPixelPoly, and casa::DSScreenRectangle.
Referenced by casa::DSPixelPoly::getRawOptions(), casa::DSScreenPoly::getRawOptions(), and casa::DSWorldPoly::getRawOptions().
|
protectedvirtual |
|
virtual |
Is the supplied point within the DisplayShape?
Implements casa::DisplayShape.
|
virtual |
Reimplemented from casa::DSClosed.
Reimplemented in casa::DSRectangle, casa::DSWorldPoly, casa::DSScreenPoly, casa::DSWorldRectangle, and casa::DSScreenRectangle.
|
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 |
Reimplemented from casa::DSClosed.
Reimplemented in casa::DSRectangle.
|
virtual |
Scale the shape about its center by the scaleFactor.
Implements casa::DisplayShape.
Reimplemented in casa::DSWorldPoly, and casa::DSScreenPoly.
|
virtual |
Sets the center of the DisplayShape.
Implements casa::DisplayShape.
Reimplemented in casa::DSRectangle, casa::DSWorldPoly, casa::DSWorldRectangle, casa::DSScreenPoly, and casa::DSScreenRectangle.
|
privatevirtual |
Used to set up the class when default constructor called.
Reimplemented from casa::DSClosed.
Reimplemented in casa::DSRectangle.
|
virtual |
Reimplemented from casa::DSClosed.
Reimplemented in casa::DSRectangle, casa::DSSquare, casa::DSWorldPoly, casa::DSWorldRectangle, casa::DSScreenPoly, casa::DSPixelRectangle, casa::DSPixelPoly, and casa::DSScreenRectangle.
|
virtual |
Reimplemented in casa::DSWorldPoly, and casa::DSScreenPoly.
|
private |
|
private |
|
private |
|
private |