LARS
LARS (Light Augmented Reality System) is an open-source framework for light-based interaction and real-time tracking in multi-robot experiments. Inspired by ARK, LARS extends the augmented reality paradigm to robotic collectives by projecting dynamic visual cues and environments onto the arena, enabling new experimental possibilities for collective robotics research, education, and outreach. LARS features integrated tracking, light projection, and modular experiment control with a user-friendly Qt GUI.
Loading...
Searching...
No Matches
QCPSelectionDecoratorBracket Class Reference

A selection decorator which draws brackets around each selected data segment. More...

Inheritance diagram for QCPSelectionDecoratorBracket:
QCPSelectionDecorator

Public Types

enum  BracketStyle {
  bsSquareBracket , bsHalfEllipse , bsEllipse , bsPlus ,
  bsUserStyle
}

Public Member Functions

 QCPSelectionDecoratorBracket ()
QPen bracketPen () const
QBrush bracketBrush () const
int bracketWidth () const
int bracketHeight () const
BracketStyle bracketStyle () const
bool tangentToData () const
int tangentAverage () const
void setBracketPen (const QPen &pen)
void setBracketBrush (const QBrush &brush)
void setBracketWidth (int width)
void setBracketHeight (int height)
void setBracketStyle (BracketStyle style)
void setTangentToData (bool enabled)
void setTangentAverage (int pointCount)
virtual void drawBracket (QCPPainter *painter, int direction) const
virtual void drawDecoration (QCPPainter *painter, QCPDataSelection selection) Q_DECL_OVERRIDE
Public Member Functions inherited from QCPSelectionDecorator
 QCPSelectionDecorator ()
QPen pen () const
QBrush brush () const
QCPScatterStyle scatterStyle () const
QCPScatterStyle::ScatterProperties usedScatterProperties () const
void setPen (const QPen &pen)
void setBrush (const QBrush &brush)
void setScatterStyle (const QCPScatterStyle &scatterStyle, QCPScatterStyle::ScatterProperties usedProperties=QCPScatterStyle::spPen)
void setUsedScatterProperties (const QCPScatterStyle::ScatterProperties &properties)
void applyPen (QCPPainter *painter) const
void applyBrush (QCPPainter *painter) const
QCPScatterStyle getFinalScatterStyle (const QCPScatterStyle &unselectedStyle) const
virtual void copyFrom (const QCPSelectionDecorator *other)

Protected Member Functions

double getTangentAngle (const QCPPlottableInterface1D *interface1d, int dataIndex, int direction) const
QPointF getPixelCoordinates (const QCPPlottableInterface1D *interface1d, int dataIndex) const
Protected Member Functions inherited from QCPSelectionDecorator
virtual bool registerWithPlottable (QCPAbstractPlottable *plottable)

Protected Attributes

QPen mBracketPen
QBrush mBracketBrush
int mBracketWidth
int mBracketHeight
BracketStyle mBracketStyle
bool mTangentToData
int mTangentAverage
Protected Attributes inherited from QCPSelectionDecorator
QPen mPen
QBrush mBrush
QCPScatterStyle mScatterStyle
QCPScatterStyle::ScatterProperties mUsedScatterProperties
QCPAbstractPlottablemPlottable

Detailed Description

A selection decorator which draws brackets around each selected data segment.

Additionally to the regular highlighting of selected segments via color, fill and scatter style, this QCPSelectionDecorator subclass draws markers at the begin and end of each selected data segment of the plottable.

The shape of the markers can be controlled with setBracketStyle, setBracketWidth and setBracketHeight. The color/fill can be controlled with setBracketPen and setBracketBrush.

To introduce custom bracket styles, it is only necessary to sublcass QCPSelectionDecoratorBracket and reimplement drawBracket. The rest will be managed by the base class.

Member Enumeration Documentation

◆ BracketStyle

Defines which shape is drawn at the boundaries of selected data ranges.

Some of the bracket styles further allow specifying a height and/or width, see setBracketHeight and setBracketWidth.

Enumerator
bsSquareBracket 

A square bracket is drawn.

bsHalfEllipse 

A half ellipse is drawn. The size of the ellipse is given by the bracket width/height properties.

bsEllipse 

An ellipse is drawn. The size of the ellipse is given by the bracket width/height properties.

bsPlus 

A plus is drawn.

bsUserStyle 

Start custom bracket styles at this index when subclassing and reimplementing drawBracket.

Constructor & Destructor Documentation

◆ QCPSelectionDecoratorBracket()

QCPSelectionDecoratorBracket::QCPSelectionDecoratorBracket ( )

Creates a new QCPSelectionDecoratorBracket instance with default values.

Member Function Documentation

◆ drawBracket()

void QCPSelectionDecoratorBracket::drawBracket ( QCPPainter * painter,
int direction ) const
virtual

Draws the bracket shape with painter. The parameter direction is either -1 or 1 and indicates whether the bracket shall point to the left or the right (i.e. is a closing or opening bracket, respectively).

The passed painter already contains all transformations that are necessary to position and rotate the bracket appropriately. Painting operations can be performed as if drawing upright brackets on flat data with horizontal key axis, with (0, 0) being the center of the bracket.

If you wish to sublcass QCPSelectionDecoratorBracket in order to provide custom bracket shapes (see QCPSelectionDecoratorBracket::bsUserStyle), this is the method you should reimplement.

◆ drawDecoration()

void QCPSelectionDecoratorBracket::drawDecoration ( QCPPainter * painter,
QCPDataSelection selection )
virtual

Draws the bracket decoration on the data points at the begin and end of each selected data segment given in seletion.

It uses the method drawBracket to actually draw the shapes.

\seebaseclassmethod

Reimplemented from QCPSelectionDecorator.

◆ setBracketBrush()

void QCPSelectionDecoratorBracket::setBracketBrush ( const QBrush & brush)

Sets the brush that will be used to draw the brackets at the beginning and end of each selected data segment.

◆ setBracketHeight()

void QCPSelectionDecoratorBracket::setBracketHeight ( int height)

Sets the height of the drawn bracket. The height dimension is always perpendicular to the key axis of the data, or the tangent direction of the current data slope, if setTangentToData is enabled.

◆ setBracketPen()

void QCPSelectionDecoratorBracket::setBracketPen ( const QPen & pen)

Sets the pen that will be used to draw the brackets at the beginning and end of each selected data segment.

◆ setBracketStyle()

void QCPSelectionDecoratorBracket::setBracketStyle ( QCPSelectionDecoratorBracket::BracketStyle style)

Sets the shape that the bracket/marker will have.

See also
setBracketWidth, setBracketHeight

◆ setBracketWidth()

void QCPSelectionDecoratorBracket::setBracketWidth ( int width)

Sets the width of the drawn bracket. The width dimension is always parallel to the key axis of the data, or the tangent direction of the current data slope, if setTangentToData is enabled.

◆ setTangentAverage()

void QCPSelectionDecoratorBracket::setTangentAverage ( int pointCount)

Controls over how many data points the slope shall be averaged, when brackets shall be aligned with the data (if setTangentToData is true).

From the position of the bracket, pointCount points towards the selected data range will be taken into account. The smallest value of pointCount is 1, which is effectively equivalent to disabling setTangentToData.

◆ setTangentToData()

void QCPSelectionDecoratorBracket::setTangentToData ( bool enabled)

Sets whether the brackets will be rotated such that they align with the slope of the data at the position that they appear in.

For noisy data, it might be more visually appealing to average the slope over multiple data points. This can be configured via setTangentAverage.


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