Aquila
2.0 prealpha
Cognitive Robotics Architecture
|
Handles the different ending decorations for line-like items. More...
#include <plot2d.h>
Public Types | |
enum | EndingStyle { esNone, esFlatArrow, esSpikeArrow, esLineArrow, esDisc, esSquare, esDiamond, esBar } |
Public Member Functions | |
QCPLineEnding () | |
QCPLineEnding (EndingStyle style, double width=8, double length=10, bool inverted=false) | |
EndingStyle | style () const |
double | width () const |
double | length () const |
bool | inverted () const |
void | setStyle (EndingStyle style) |
void | setWidth (double width) |
void | setLength (double length) |
void | setInverted (bool inverted) |
double | boundingDistance () const |
void | draw (QCPPainter *painter, const QVector2D &pos, const QVector2D &dir) const |
void | draw (QCPPainter *painter, const QVector2D &pos, double angle) const |
Protected Attributes | |
EndingStyle | mStyle |
double | mWidth |
double | mLength |
bool | mInverted |
Handles the different ending decorations for line-like items.
For every ending a line-like item has, an instance of this class exists. For example, QCPItemLine has two endings which can be set with QCPItemLine::setHead and QCPItemLine::setTail.
The styles themselves are defined via the enum QCPLineEnding::EndingStyle. Most decorations can be modified regarding width and length, see setWidth and setLength. The direction of the ending decoration (e.g. direction an arrow is pointing) is controlled by the line-like item. For example, when both endings of a QCPItemLine are set to be arrows, they will point to opposite directions, e.g. "outward". This can be changed by setInverted, which would make the respective arrow point inward.
Note that due to the overloaded QCPLineEnding constructor, you may directly specify a QCPLineEnding::EndingStyle where actually a QCPLineEnding is expected, e.g.
Defines the type of ending decoration for line-like items, e.g. an arrow.
The width and length of these decorations can be controlled with the functions setWidth and setLength. Some decorations like esDisc, esSquare, esDiamond and esBar only support a width, the length property is ignored.
QCPLineEnding::QCPLineEnding | ( | ) |
Creates a QCPLineEnding instance with default values (style esNone).
QCPLineEnding::QCPLineEnding | ( | QCPLineEnding::EndingStyle | style, |
double | width = 8 , |
||
double | length = 10 , |
||
bool | inverted = false |
||
) |
Creates a QCPLineEnding instance with the specified values.
double QCPLineEnding::boundingDistance | ( | ) | const |
void QCPLineEnding::draw | ( | QCPPainter * | painter, |
const QVector2D & | pos, | ||
const QVector2D & | dir | ||
) | const |
void QCPLineEnding::draw | ( | QCPPainter * | painter, |
const QVector2D & | pos, | ||
double | angle | ||
) | const |
|
inline |
|
inline |
void QCPLineEnding::setInverted | ( | bool | inverted | ) |
Sets whether the direction of the ending decoration shall be inverted with respect to the natural direction given by the parent item. For example, an arrow decoration will point inward when inverted is set to true.
void QCPLineEnding::setLength | ( | double | length | ) |
Sets the length of the ending decoration, if the style supports it. On arrows, for example, the length defines the size in pointing direction.
void QCPLineEnding::setStyle | ( | QCPLineEnding::EndingStyle | style | ) |
Sets the style of the ending decoration.
void QCPLineEnding::setWidth | ( | double | width | ) |
Sets the width of the ending decoration, if the style supports it. On arrows, for example, the width defines the size perpendicular to the arrow's pointing direction.
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |